gpt4 book ai didi

ios - 多次播放后 iOS UIWebView 中 HTML5 视频的 MEDIA_ERR_DECODE

转载 作者:太空狗 更新时间:2023-10-29 15:30:02 25 4
gpt4 key购买 nike

在 iOS 的 UIWebView 中的 HTML5 视频控件中播放大约 20 个短视频剪辑 (mp4) 后,后续剪辑失败并显示 MEDIA_ERR_DECODE。问题是,我知道这些视频很好,因为它们以前播放过,有时甚至是在同一个 session 期间播放过。

此外,如果您等待足够长的时间来请求新的视频剪辑,它通常会再次开始工作。

我也知道它不是服务器,因为我可以在我的台式电脑上对 chrome 执行完全相同的操作,而且它始终有效。

根据我的故障排除,错误似乎出在 iOS 本身。

  1. 有人有解决此问题的想法吗?
  2. 有什么方法可以获取有关 iOS 中此类媒体解码错误的更多信息?我尝试使用 Safari 的开发工具来监听 http 请求,但在它遇到内存不足错误并终止应用程序之前,我不能让它记录超过几秒钟。

更新:它在 iOS 模拟器中运行时也能正常工作。看来问题只出现在 iPad 本身

最佳答案

在与 Apple 支持人员讨论后,问题已得到解决。问题与硬件 H264 解码器有关。基本上,我从来没有通过从不释放视频资源(我认为 javascript 会自己做)来从硬件解码器缓冲区中删除视频。

所以我是这样设置源的:

$(vid).src = "some source file";
$(vid).play();
... some other stuff happens ...
$(vid).remove();

这样做永远不会从解码器缓冲区中删除视频,这意味着它最终无法解码更多视频。

要解决此问题,您必须按照以下方式从 DOM 中删除视频:

$(vid).src = "some source file";
$(vid).play();
... some other stuff happens ...
$(vid).remove();
$(vid).src = "";
$(vid).load();

现在我意识到这没有多大意义,因为在调用 .remove() 之后,我会假设控件已从 DOM 中删除并且任何垃圾收集都会自动完成剩下的工作。但是,它不是那样工作的。我希望这对其他人有帮助。

关于ios - 多次播放后 iOS UIWebView 中 HTML5 视频的 MEDIA_ERR_DECODE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com