1

基本上我有以下代码,它将根据其 id 值获取视频。

<?php 
   if (isset($_GET["id"])) {
   $id = $_GET["id"];
   $video = "vid" . $id;
   echo "<video controls><source src='{$video}' type='video/mp4'></video>";
     } else {
       echo "File not found.";
   }
?>

因此,如果您访问http://www.animesour.com/video.php?id=555.mp4,将加载名为 vid555.mp4 的视频(有效)。

但是,当我尝试在此代码中加载该 URL 时,它不会加载视频。

<video tabindex="0" controls="controls">
   <source src="http://www.animesour.com/video.php?id=555.mp4" type="video/mp4">
</video>

任何人都知道如何使它起作用?

4

4 回答 4

0

您作为来源的 URL 不是来源。这是一个指向将加载源代码的脚本的链接。它需要指向文件结构中包含视频的位置,而不是使其成为源。因此,您需要在代码中构建结构并将其回显到标记中。

<?php 
   if (isset($_GET["id"])) {
       $id = $_GET["id"];
       $video = "vid" . $id;
       echo "<video tabindex=\"0\" controls=\"controls\">";
       echo "<source src=\"{$video}\" type=\"video/mp4\">";
       echo "</video>";
   } else {
       echo "File not found.";
   }
?>
于 2013-07-18T20:14:05.227 回答
0

You need load the video directly when you directly embed as src, because your code adds such output that makes the second option incorrect, for example:

The url to direct video is: http://www.animesour.com/vid555.mp4

<video tabindex="0" controls="controls">
   <source src="http://www.animesour.com/vid555.mp4" type="video/mp4">
</video>

If you still want to use video.php?id=555.mp4 then you need to change your PHP to read the file for streaming.

于 2013-07-18T20:11:33.843 回答
0

我已经测试了您的代码,但都不适用于我(访问您发布的 URL,或使用该 URL 作为源)

视频播放器出现在两者上,但视频都没有播放。

于 2013-07-18T20:17:14.720 回答
0

好的,我设法做到了。我刚刚将第一个代码更改为

<?php
$id = $_GET["id"];
$file = "vid" . $id . ".mp4";

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
?>

我现在可以在 iframe 中使用带有 ?id=555 的 URL 将其从外部链接,它会将视频文件加载到播放器中。

于 2013-07-19T07:13:01.890 回答