Phonegap html5视频不播放
Posted
技术标签:
【中文标题】Phonegap html5视频不播放【英文标题】:Phonegap html5 video not playing 【发布时间】:2015-01-13 20:22:48 【问题描述】:我正在尝试在 iPad 的 phonegap 应用中播放视频。
这个视频给了我错误:
MEDIA_ERR_SRC_NOT_SUPPORTED
我尝试播放的视频不是本地视频,当我在该视频上使用 curl -I 时,这是它带来的信息:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 13 Jan 2015 19:56:03 GMT
Content-Type: video/mp4
Content-Length: 12939401
Last-Modified: Thu, 20 Nov 2014 18:11:31 GMT
Connection: keep-alive
Keep-Alive: timeout=45
Accept-Ranges: bytes
我还尝试从外部网站加载另一个视频,它确实有效(它也是一个 mp4)。
我的phonegap版本是3.5.0.0
据我所知,我得到了一个支持的 mp4,有人能看出这里有什么问题吗?
【问题讨论】:
【参考方案1】:以防万一这对某人有帮助。请注意使用基线配置文件对您的移动视频进行编码。
视频似乎是使用简单的配置文件编码的。 Safari 移动浏览器仅支持具有以下特征的原生视频:
ios 上的 Safari(包括 iPad)目前支持 MPEG-4 视频(基线配置文件)和使用 H.264 视频(基线配置文件)编码的 QuickTime 电影,以及其中之一支持的音频类型。
正如本页所说:
https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_html5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html
【讨论】:
【参考方案2】:也许你也犯了同样的错误,我花了很多时间试图用 Access-Control-Allow-Origin 配置 apache ......但最后我意识到我使用的是 nginx,所以必须修改标题在 Nginx 上:
add_header "Access-Control-Allow-Origin" "*";
【讨论】:
【参考方案3】:确保服务器支持部分请求,因为我注意到这是 iOS 的要求。
将视频 URL 复制到 Chrome 浏览器中,按 F12 -> 网络选项卡查看请求,然后重新加载。您应该会看到如下内容:
GET 200 OK
GET 206 PARTIAL CONTENT
GET 206 PARTIAL CONTENT
...
这告诉你服务器支持部分内容请求,这很好。
如果您自己通过服务(而不是静态地)提供视频,则需要在服务器端代码中明确支持此功能。例如,这里有一个 ASP.NET Web API 教程:
https://devblogs.microsoft.com/aspnet/asp-net-web-api-and-http-byte-range-support/
【讨论】:
以上是关于Phonegap html5视频不播放的主要内容,如果未能解决你的问题,请参考以下文章