【问题标题】:Using PHP to send a flash video to be shown on a HTML page使用 PHP 发送要在 HTML 页面上显示的 Flash 视频
【发布时间】:2014-07-15 18:33:45
【问题描述】:

我想在网页上播放 Flash 视频,但源文件 (*.flv) 在 webroot 之外。

为了能够访问这个源文件,我给了 flashvars 一个 php 文件参考。这个 php 文件将设置标题并返回正确的 flv 文件数据。我预计这会起作用,但它不起作用。

我的响应标头显示的内容类型值为:text/html,而如果我尝试直接播放视频文件,则标头是 video/x-flv。可能是什么问题以及解决它的任何方法都会很棒!

我的 HTML 源代码

<object id=0 type="video/x-flv" data=123.swf width=640 height=360>
<param name="movie" value=123.swf />
<param name="wmode" value="opaque" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="quality" value="high" />
<param name="menu" value="true" />
<param name="autoplay" value="false" />
<param name="autoload" value="false" />
<param name="FlashVars" value="flv=media.php" />
</object>

media.php 文件中的我的 PHP 数据 - <?php header("Content-Type: video/x-flv"); readfile("videos/vid1.flv");
?>

但是,当我单击要播放的视频时,响应标头的内容类型为 text/html。我想,这就是视频无法播放的根本原因。

有什么帮助吗?

【问题讨论】:

  • 尝试删除拖尾?&gt; 怀疑它会起作用,但值得一试。以防有尾随空格或任何东西。
  • 我的回答对你有帮助吗?
  • 如果你直接去你的 media.php 文件,你会看到什么?可能正在显示某种 PHP 错误/警告。
  • 我收到以下错误 - 警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已发送。但是,正如乔南所说,我摆脱了空格并且它起作用了!谢谢!

标签: php html flash video flashvars


【解决方案1】:

确保&lt;?php 标记前面没有任何制表符/空格。这将导致 PHP 在您执行 header("Content-Type: video/x-flv"); 时给出错误,从而保持内容类型 text/html

编辑
exit() 结束脚本可能会有所帮助,以确保没有其他内容被输出(例如,在尾随?&gt; 之后的制表符或空格)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2022-08-10
    相关资源
    最近更新 更多