Cordova iPad 应用程序 - 视频停顿

Posted

技术标签:

【中文标题】Cordova iPad 应用程序 - 视频停顿【英文标题】:Cordova iPad app - video stalling 【发布时间】:2013-03-13 02:09:07 【问题描述】:

我正在使用 Cordova 为 iPad 应用构建内容。由于该应用程序已经构建并由 CMS 填充,因此我无法向其添加任何扩展或插件或模块或任何东西(这似乎很重要)。我正在构建的内容几乎完全是视频驱动的,基本上我有一堆由点击事件触发的<video> 标签。正如我所说,所有视频都是从 CMS 加载的,而不包含在应用程序负载本身中。

大多数情况下它运行良好,但有时视频开始播放并会在播放到一半时停止。我的视频文件不是很大,它们只有大约 13 秒长,每个大约 700kb 左右。

当视频停止时,控制台会记录以下错误:

Took background task assertion (5) for playback stall
Ending background task assertion (5) for playback stall

括号中的数字会有所不同。

我对这意味着什么一无所知,而且在谈到 Xcode/Cordova 世界时,我几乎是个新手——前端开发是我的事,但 Cordova 世界对我来说是新的我。我不知道是什么原因造成的,它似乎是随机的。我假设它可能是比特率/带宽的事情,但这没有意义,因为当视频被触发时,我检测到它是readystate,以便在播放前等待它加载,所以理论上它应该在开始播放之前完全加载。

有什么解决方案或策略可以尝试吗?我有点不知所措,在搜索特定的错误消息时,互联网和谷歌并没有太大的帮助。

【问题讨论】:

这些错误来自比浏览器/WebUIView 更深的堆栈。它们的通常原因是网络无法保持缓冲区被填满。您表示您正在使用 readystate 检查预加载,但这在 Mobile Safari 中是不可靠的/损坏的。看看***.com/questions/11633929/… 和developer.apple.com/library/safari/#documentation/AudioVideo/… 【参考方案1】:

如果问题在于加载,Cordova 中的一个不错的技巧是尝试将其设置为(小)超时,以便在视频之前加载其余部分。如上所述,readtyState 选项并不总是可靠的。

【讨论】:

这似乎已经排序了。谢谢!

以上是关于Cordova iPad 应用程序 - 视频停顿的主要内容,如果未能解决你的问题,请参考以下文章

ios上cordova应用程序中的视频没有声音

Cordova:在后台运行应用程序时的事件

在多次文件请求后,Cordova-Angularjs 应用程序在 iPad 上停止

Cordova 3.6.0:只添加 iphone 支持,根本没有 ipad

Phonegap / Cordova Youtube 在 iOS 上嵌入视频不起作用

使用 Cordova 识别 iOS 设备类型 iphone 或 ipad?