我正在使用 VideoJS 播放文件服务器提供的视频。这些文件是 mp4 格式,并且在任何桌面浏览器上都可以正常工作(使用 Flash 后备)。但是,它们在移动设备上根本不起作用。作为引用,请随时查看:
http://74.203.203.93/content/aacfc5e7-fbeb-4785-ad04-023856a54a3d
我已经尝试用我能想到的所有方法来处理代码以使其正常工作,但显然我在某处遗漏了一些东西。有没有人有任何想法/建议?
更多信息:
常量:
- 视频采用 mp4 格式(根据 MediaInfo,H.264 显示视频编解码器为 AVC)。
- 不可能有多种格式(不会超过 1(一个)“来源”标签)。
- 视频文件托管在没有文件名的文件服务器中。浏览器获取位置,并获取源类型标签。
- 服务器是 IIS。
- 服务器支持字节范围请求。
到目前为止的尝试:
根据 http://help.videojs.com/discussions/problems/539-playing-mp4-on-android-using-videojs
- 从标签中删除了“type='video/mp4'”。
- 已检查服务器上的 MIME 类型,正在显示视频/mp4。
根据 https://github.com/zencoder/video-js/blob/master/docs/api.md
- 添加了 javascript 以在准备就绪时调用 play()。
上面的扩展:尝试用 javascript 在点击时调用 play()。
尝试在 src 位置的 guid 末尾添加“.mp4”。
- 交换了“source”标签的“type”和“src”元素的位置。
- 我已将源代码中的 https://更改为 http://每个位置都说移动设备不能很好地支持 https。
- 我将 src 中的相对 url 更改为绝对 url。
我会在继续时更新更多信息...
最佳答案
在伟大的媒体大战中,flash 已从 android 中淘汰,这就是为什么 webm 文件是 videojs 中的关键组件。必须将 mp4 文件转换为 webm 文件并使用两个源。您也可以将 webm vid 上传到文件服务器,并在播放器中链接两个源。服务器链接中的文件名必须以 .mp4 和 .webm 结尾才能被识别。
2必读—— http://www.zdnet.com/androids-flash-player-is-dead-live-with-it-7000002668/
http://www.pcadvisor.co.uk/how-to/google-android/3417930/how-get-flash-in-android-jelly-bean/
在没有软件的情况下将 mp4 转换为 webm 的最快方法是将其上传到 youtube,一旦视频在那里,复制链接并转到 keepvid.com,然后下载 webm。请记住,最高质量的 webm 文件并不总是适合移动设备的大小和全局缓慢的互联网连接。不过,videojs 上的视频质量切换正在进行中。
关于android - VideoJS 不适用于移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14075436/