我正在开发一个网络应用,并且无法使用iPad的HTML5视频。此代码在其他任何地方都能正常工作,而不是iPad。我只是得到一个视频帧,一个黑盒子。 HTML是在javascript中生成的,它本身并不是硬编码。
<video preload="true" src="places/video.mp4" class="c1" id="it" height="480" width="385" controls="">
</video>
任何人都知道什么可能是错的? (根据Dive Into HTML5中的规定,使用手刹CLI和ffmpeg2theora编码视频。)
我认为问题在于它不是http://serverlocation/places/video.ext。我如何改变它看起来像那样(不能保证我知道服务器位置。)我的一部分怀疑这是因为图像是在没有http://的情况下提供的,而且它们工作正常。
答案 0 :(得分:3)
我想我知道这个问题。当出现多个<source>
标签时,iPad会发出窒息声。你可以做的(简单地说)就是使用jQuery来添加/删除对象。
<强> HTML:强>
<div id="movie-wrapper">
<div id="webkit-wrapper">
<video width="480" height="360" controls="controls" src="places/video.mp4"></video>
</div>
<div id="other-wrapper">
<!-- Do your video in a new wrapper for all others -->
</div>
</div>
<强> JS:强>
$(document).ready( function(){
if($.browser.webkit) {
$('#other-wrapper').remove();
} else {
$('#webkit-wrapper').remove();
}
});
理想情况下,您将为每个主要浏览器设置一个条件,因为您需要至少三种类型的视频才能实现完全兼容性。但是这样的事情应该可以解决iPad webkit的问题。
修改强>
重读你的评论,我想确定一些事情 - 你在视频元素上有controls="controls"
如上所述。从我读过的所有内容来看,iPad要求启用播放功能。否则,你得到一个黑屏。
您还可以根据HTML5 Video "Black Screen" on iPad
查看是否存在编码问题修改强> 其他考虑: Web服务器可能没有正确报告文件类型(如果它传输时带有关于类型的警告,您可以在错误控制台中进行检查)
如果正在加载海报,请尝试直接访问mp4视频的链接(请参阅quicktime是否在浏览器中播放)。
除此之外,我不知道 - 除非您使用非工作示例发布指向您网页的链接,否则会继续误解事实。