根据:
http://developer.android.com/sdk/android-2.0-highlights.html
Android 2.0应该支持HTML5视频元素 . 我无法使用摩托罗拉Droid工作,并且无法在任何HTML5视频示例页面上成功查看视频 . 由于目前不支持QuickTime或Flash,这是我在网页中嵌入mp4视频时唯一能想到的 . 有人有运气吗?
根据:
http://developer.android.com/sdk/android-2.0-highlights.html
Android 2.0应该支持HTML5视频元素 . 我无法使用摩托罗拉Droid工作,并且无法在任何HTML5视频示例页面上成功查看视频 . 由于目前不支持QuickTime或Flash,这是我在网页中嵌入mp4视频时唯一能想到的 . 有人有运气吗?
14 回答
这可能不完全回答您的问题,但我们使用的是3GP或3GP2文件格式 . 甚至更好地使用rtsp协议,但Android浏览器也将识别3GP文件格式 .
你可以使用类似的东西
触发视频播放器 . 该文件将被流式传输,播放结束后,处理将返回给浏览器 .
对我来说,这解决了Android设备上当前视频标签实现的许多问题 .
我刚刚做了一些实验,从我可以告诉你需要三件事:
调用视频时,不得使用type属性 .
您必须手动调用video.play()
必须将视频编码为一些非常严格的参数;使用Handbrake上的iPhone设置并选中'Web Optimized'按钮通常可以解决问题 .
看看这个页面上的demo:http://broken-links.com/tests/video/
这适用于AFAIK,适用于所有支持视频的桌面浏览器,iPhone和Android .
这是标记:
我在JS中有这个:
我在三星Galaxy S上测试了它,它工作正常 .
罗曼的答案对我来说很好 - 或者至少,它给了我我期待的东西 . 在手机的本机应用程序中打开视频与iPhone完全相同 .
这可能值得调整您的观点,并期望视频在其自己的应用程序中全屏播放,并为此编码 . 令人沮丧的是,点击视频并不足以让它以与iPhone相同的方式播放,但看到它只需要一个onclick属性来启动它,它就不是世界末日 .
我的建议,FWIW,是使用海报图像,并明确表示它将播放视频 . 我正在开展一个项目,正是这样,客户对此感到满意 - 当然,他们也免费获得了Android版的网络应用程序,因为 Contract 只适用于iPhone网络应用程序 .
仅举例来说,下面是一个有效的Android视频标签 . 很好,很简单 .
在这里,我包括我的一位朋友如何解决在Nexus One中以HTML格式显示视频的问题:
我从来没有能够让视频播放内联 . 实际上互联网上有很多人明确提到自从Honeycomb以来支持HTML内联视频播放,我们正在与Froyo和Gingerbread作斗争......对于小型手机,我认为全屏播放是非常自然的 - 否则就不那么明显了 . 因此,目标是让视频全屏显示 . 但是,此线程中提出的解决方案对我们不起作用 - 单击元素不会触发任何内容 . 此外,还显示了视频控件,但没有显示任何海报,因此用户体验甚至更奇怪 . 所以他做的是以下内容:
将本机代码公开给可通过javascript调用的HTML:
代码本身有一个函数调用本机活动来播放视频:
然后在HTML本身,他继续使视频标签无法播放视频 . 因此,最后他决定覆盖视频的
onclick
事件,使其完成实际播放 . 这几乎对他有用 - 除了没有显示海报 . 这是最奇怪的部分 - 每次设置标签的poster
属性时,他都会继续接收ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host"
. 最后他找到了这个问题,这非常奇怪 - 事实证明他已经将source
子标签保留在video
标签中,但从未使用过它 . 奇怪的是,这导致了这个问题 . 现在看看他对video
部分的定义:当然你还需要在页面的头部添加javascript函数的定义:
我意识到这不是纯粹的HTML解决方案,但是我们能够为Nexus One类型的手机做到最好 . 这个解决方案的所有学分都归Dimitar Zlatkov Dimitrov所有 .
如果你手动调用
video.play()
它应该工作:把我的android 2.2浏览器指向html5test.com,告诉我视频元素是支持的,但没有列出的视频编解码器......看起来有点无意义支持视频元素但没有编解码器???除非该测试页面有问题 .
但是,我确实找到了与音频元素相同的情况:支持该元素,但没有音频格式 . 看这里:
http://textopiablog.wordpress.com/2010/06/25/browser-support-for-html5-audio/
在我正确编码视频之前,没有什么对我有用 . 请尝试本指南以获得正确的手刹设置:http://forum.handbrake.fr/viewtopic.php?f=7&t=9694
也许你必须专门为设备编码视频,例如:
这里有一些编码配置的例子:
https://supportforums.motorola.com
在mp4容器中尝试h.264 . 我在Droid X上取得了很大的成功 . 我一直在使用zencoder.com进行格式转换 .
这对我有用:
只有当.mp4在顶部并且视频文件不大时 .
它应该工作,但看分辨率:Android 2.0 and webkit
根据:https://stackoverflow.com/a/24403519/365229
myVideo.play();
if(typeof(myVideo.webkitEnterFullscreen)!=“undefined”){
//这是针对Android Stock的 .
myVideo.webkitEnterFullscreen();
} else if(typeof(myVideo.webkitRequestFullscreen)!=“undefined”){
//这适用于Chrome .
myVideo.webkitRequestFullscreen();
} else if(typeof(myVideo.mozRequestFullScreen)!=“undefined”){
myVideo.mozRequestFullScreen();
}
您必须在全屏指令之前触发play(),否则在Android浏览器中它将全屏显示但不会开始播放 . 测试了最新版本的Android浏览器,Chrome,Safari .
I've tested it on Android 2.3.3 & 4.4 browser.
经过多次研究,在许多不同的设备中,到目前为止,我得出的结论是
MP4
比MOV
格式的支持要少得多 . 所以,我在所有浏览器上都使用MOV
格式,所有Android和Apple设备都支持这种格式 . 我已经检测到设备是移动设备或桌面浏览器的天气,并相应地设置SRC
:Google(Android)手机(如Galaxy S和iPhone)均支持HTML5 . 但iPhone并不支持谷歌手机支持的Flash .