2011-04-12 50 views
2
  1. 由于某些原因,我无法使用mediaelement.js Flash播放器在Firefox中工作。我正在使用.m4v和.mp4文件来测试它。mediaelement.js Flash Firefox

    我知道Firefox不能在其原生的HTML5播放器中播放.m4v或.mp4,但我们不想为一些视频编码.ogv和.webm。

    直到.webm接管市场。

    默认Flash播放器9及以上本来应该播放.mp4和.m4v版本。

  2. 此外,如果我们使用多个来源的选择和对象标签具有 <param name="flashvars" value="controls=true&poster=../media/echo-hereweare.jpg&file=../media/echo-hereweare.mp4" />

    是海报和文件路径能够使用http://网址,而非相对网址的?

  3. 在测试Firefox我都用了此选项:

    <video width="640" height="360" src="../media/echo-hereweare.mp4" 
    type="video/mp4" id="player1" poster="../media/echo-hereweare.jpg" 
    controls="controls" preload="none"></video> 
    

    低于这个选项:

    <video width="640" height="360" id="player2" 
    poster="../build/echo-hereweare.jpg" controls="controls" preload="none"> 
        <!-- MP4 source must come first for iOS --> 
        <source type="video/mp4" src="../build/echo-hereweare.mp4" /> 
    
        <!-- Fallback flash player for no-HTML5 browsers with JavaScript turned off --> 
        <object width="640" height="360" type="application/x-shockwave-flash" data="../build/flashmediaelement.swf">   
         <param name="movie" value="../build/flashmediaelement.swf" /> 
         <param name="flashvars" value="controls=true&poster=../media/echo-hereweare.jpg&file=../build/echo-hereweare.mp4" />   
         <!-- Image fall back for non-HTML5 browser with JavaScript turned off 
           and no Flash player installed --> 
         <img src="../build/echo-hereweare.jpg" width="640" height="360" alt="Here we are" 
        title="No video playback capabilities" /> 
        </object> 
    </video> 
    

    的他们正在努力的都不是。 Flash皮肤会显示,但功能不起作用。我可以看到时间轴,Big Play按钮,音量,但没有任何选择。

  4. 奇怪的是我不得不使用jQuery实例化播放器以使皮肤可以在Chrome和IE上运行。在这些例子中,它没有说明必须实例化它。只需指向文件。这是我的问题。

  5. Flash播放器在本地工作,当我做类似于我上面描述的,但不是我们的网站。我错过了什么吗?

UPDATE:

实际的问题是与我们的活动网站上目前CSS的z-index冲突。 主要是我们的对象标签和控件。

这是我们的解决方案超越玩家的CSS。

video{z-index:99999} 
.mejs-overlay-button{z-index:700} 
.mejs-overlay-play{} 
.mejs-container .mejs-controls{z-index:700} 
.mejs-container-fullscreen video{z-index:99999} 
.mejs-container .mejs-container-fullscreen{z-index:9999} 
.mejs-fullscreen-button{right:0;} 

不知道这是否会帮助其他人,但只是要小心它。

回答

1

如果它在本地工作,但不通过网络服务器,它可能是mime类型。

选中此项:MediaElements – Installation

希望它有帮助。

+1

我发现实际问题是与我们当前的CSS存在z-index冲突。对象的z索引低于HTML5海报控件的z索引。所以如果有其他人遇到这种情况,请注意并检查z-index问题。 – ClosDesign 2011-04-15 16:35:34

0

我与mediaelement player有类似的问题,其中正确的视频类型没有被优先考虑。似乎有时浏览器会表明它们支持其实际上不支持的格式。

在我的情况下,我使用的是FLV和M4V文件,iDevices尝试播放FLV,但我会在这里包含此解决方案,以防其他人在遇到问题时偶然发现此线索。

为了解决这个问题我基本上是做了一些浏览器检测与UA字符串,像this,然后相应地重新排序<source>元素:

function prioritizeFormat(mediaelement) 
{ 
    if (FORCE_M4V_VIDEOS) { // flag for mobile devices that think they can support FLV 
     $(mediaelement).find('source[type="video/m4v"]').after($(mediaelement).find('source[type="video/x-flv"]')); 
    } 
} 
0

我有同样的问题。我没有包含在我的服务器上的.swf文件。从build文件夹复制mediaelement.swf文件并正确地复制它。例如:

<video width="100%" height="auto" poster="some_image.jpg" controls="controls" autoplay="true"> 
    <source type="video/mp4" src="myvideo.mp4" /><source type="video/webm" src="myvideo.webm" /> 
    <source type="video/ogg" src="myvideo.ogv" /> 
    <object width="320" height="240" type="application/x-shockwave-flash" data="flashmediaelement.swf"><!--Proper href here--> 
     <param name="movie" value="flashmediaelement.swf" /> 
     <param name="flashvars" value="controls=true&file=myvideo.mp4" /> 
     <img src="myvideo.jpg" width="320" height="240" title="No video playback capabilities" /> 
    </object> 
</video>