热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

经过多次播放后,iOSUIWebView中的HTML5视频上的MEDIA_ERR_DECODE

如何解决《经过多次播放后,iOSUIWebView中的HTML5视频上的MEDIA_ERR_DECODE》经验,为你挑选了1个好方法。

在iOS中的UIWebView中的HTML5视频控件中播放大约20个短视频片段(mp4)后,后续片段失败了MEDIA_ERR_DECODE.问题是,我知道视频很好,因为它们以前曾播放过,有时甚至在同一会话期间播放.

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

我也知道它不是服务器,因为我可以在我的桌面计算机上对chrome执行完全相同的操作,并且它始终有效.

根据我的故障排除,似乎这个错误在iOS本身.

    有没有人有任何想法解决这个问题?

    有没有办法在iOS中获取有关此类媒体解码错误的更多信息?我尝试使用Safari的开发工具来收听http请求,但我不能让它记录超过几秒钟才能遇到内存不足错误并杀死应用程序.

更新:在iOS模拟器中运行时也可以正常工作.似乎这个问题只发生在iPad本身



1> jugg1es..:

与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中删除了,任何垃圾收集都会自动完成剩下的工作.但是,它并不像那样.我希望这有助于其他人.


推荐阅读
author-avatar
继续微笑丶保持硪的骄傲_195
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有