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视频不播放的主要内容,如果未能解决你的问题,请参考以下文章

在 Ionic/Phonegap 中内联播放视频(webkit-playsinline 不工作)

PhoneGap iOS 无法使用 HTML 5 播放视频

html5 视频标签,无需调用 quicktime 播放器

分享一个基于HTML5实现的视频播放器

使用 HTML5 视频元素反向播放视频

Android Phonegap HTML5 音频标签不起作用