(Flash) Flowplayer 源 - 它必须来自 http:// 吗?

Posted

技术标签:

【中文标题】(Flash) Flowplayer 源 - 它必须来自 http:// 吗?【英文标题】:(Flash) Flowplayer source - does it have to come from http://? 【发布时间】:2011-05-14 13:57:07 【问题描述】:

我主要将 jsvideo 用于 html5 视频,但它使用 flowplayer 作为其 Flash 后备...我可以使用它,除了 flowplayer 使用的 swf 文件需要来自 http 源...有没有办法做它,以便我可以将文件放在我的服务器上?

更新:这是我使用的实际代码 - 在 flash 后备部分中,我尝试直接引用 swf 媒体,但它不起作用。只有当我参考 flowplayer.org/swf/flowplayer-3.2.1.swf 时它才会起作用 “数据”, "param name="movie" value=" 和 "param name="flashvars" ... url"

 $.fancybox(
                'padding': 0,
                'overlayOpacity': 0.7,
                'autoDimensions': false,
                'width': 650,
                'height': 274,
                'content': '<div><div class="video-js-box">' +
                            '<video id="example_video_1" class="video-js"   controls="controls" preload="auto" poster="' + url + '.png">' +
                            '<source src="' + url + '.mp4" />' +
                            '<source src="' + url + '.webm" />' +
                            '<source src="' + url + '.ogv"  />' +
                              '<!-- Flash Fallback. Use any flash video player here. Make sure to keep the vjs-flash-fallback class. -->' +
                              '<object id="flash_fallback_1" class="vjs-flash-fallback"   type="application/x-shockwave-flash"' +
                                'data="/Content/media/flowplayer-3.2.1.swf">' +
                                '<param name="movie" value="/Content/media/flowplayer-3.2.1.swf" />' +
                                '<param name="allowfullscreen" value="true" />' +
                                '<param name="flashvars" value=\'config="playlist":["' + url + '.png", "url": "/Content/media/oceans-clip.mp4","autoPlay":false,"autoBuffering":true]\' />' +
                                '<!-- Image Fallback. Typically the same as the poster image. -->' +
                                '<img src="' + url + '.png"   ' +
                                 ' title="No video playback capabilities." />' +
                              '</object>' +
                            '</video>' +
                            '</div></div>',
                'onComplete': function ()  $("#fancybox-inner").css( 'overflow': 'hidden' ); ,
                'onClosed': function ()  $("#fancybox-inner").empty(); 
            );

您注意到 html5 视频的所有来源都可以来自“/Content/media/name.mp4”,而 swf 文件(特别是 flowplayer-3.2.1.swf 和“url”需要来自 http :// 来源

(虽然我可以在本地引用 png 文件)

有没有办法解决这个问题?希望这是有道理的

【问题讨论】:

跟踪您的 HTTP 流量并确保您没有收到任何 404。 '/' 将指向您服务器的 webroot。执行类似的操作:'../../content/video.mp4' 实际上是相对于您的 SWF 的路径。 【参考方案1】:

您必须将引用作为绝对 HTTP 文件传递​​,因为您从 flowplayer.org 域请求 SWF。

在 Flash 中,相对路径基于 SWF 提供的目录(在本例中为 http://releases.flowplayer.org/swf/),而不是来自包含嵌入 SWF 的 HTML 页面的目录(即您的HTML 页面)。

如果您想使用相对于您的服务器的相对路径,那么您需要在您的服务器上托管flowplayer-3.2.1.swf。使用绝对的 http URI 链接到您的视频可能更容易。

【讨论】:

我更新了源代码,但我没有工作 - 所以它不再由 releases.flowplayer.org/swf 提供。我做错了什么 您的视频 src 文件是否出现 404 错误?您的 HTTP 流量是什么样的?【参考方案2】:

就像 gthmb 说的,你必须使用你的 SWF 目录。这是一个工作示例:

<object type="application/x-shockwave-flash" data="/Tools/flowplayer-3.2.12.swf"  >
                            <param name="movie" value="Tools/flowplayer-3.2.12.swf">
                            <param name="allowFullScreen" value="true">
                            <param name="wmode" value="transparent">
                            <param name="flashVars" value="config='playlist':['../Video/myVideo.jpg','url':'../Video/myVideo.mp4','autoPlay':false]">
                            <img src="video/myVideo.jpg"  ></object></video>

我必须使用“../”来上一个目录。 “工具”和“视频”目录在同一层级。

【讨论】:

以上是关于(Flash) Flowplayer 源 - 它必须来自 http:// 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Flowplayer flash 组件播放声音但不播放视频

Flowplayer 视频进度跟踪?

参考或链接在 Flowplayer 字幕插件中不起作用

兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP

Flash 视频流 - 弄湿我的脚趾

js网页视频播放: vcastr22 flowplayer jwplayer