【问题标题】:Phonegap html5 video not playingPhonegap html5视频不播放
【发布时间】: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,有人能看出这里有什么问题吗?

【问题讨论】:

    标签: ios html cordova video


    【解决方案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/

        【讨论】:

          猜你喜欢
          • 2017-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多