美文网首页
视频开发记录

视频开发记录

作者: tinctorial | 来源:发表于2018-08-01 14:34 被阅读10次

最近一直在做视频的东西,记录下开发过程中遇到的坑和解决办法。

我们关于视频播放的模块有下载下来观看和线上观看两种,开始我是直接建了一个视频播放的view,这两种都用了这个view。关于视频播放的具体方法这里就不多赘述了。

功能做好后发现线上播放的时候关闭viewcontroller后视频播放的view没有走dealloc方法,其实ARC里不用太在意dealloc方法,但是如果有通知的话还是最好在这个方法里移除,我这个view里就有通知(做过视频播放的应该都知道需要实现监听系统通知)。
经过一番打断点后发现下载下来看的走了dealloc,而在线看的没有走,于是我就开始各种尝试,终于发现是给AVplayeritem添加KVO监听status导致的问题,但是这个又是必须监听的,于是查找dealloc方法为什么不调用(此处不深究),原因竟然是我的block里用的_全局变量而不是self.调用 ,代码规范一定不能忽视,不然会出现很多让你没有头绪的bug。

走了dealloc方法以为就ok了,但是走完就崩了,设置了全局断点却依然崩在了main函数里,哭晕。
几分钟后意识到可能要开启僵尸模式(edit scheme中diagnotics的memory management勾选zombie object)。果然开启后给了崩溃原因[(视频播放view)class retain]: message sent to deallocated instance 0x11371b9e0 一番百度后说是过度释放导致的,但是viewcontroller中的dealloc中显示这个view的引用计数是2,只能想想别的办法,仔细看了代码后怀疑是这个view的hidden属性问题,于是我就改成了alpha,改完后在我iOS11.3的系统上还真不闪退了,窃喜。开心过后想到测试机8.3的系统不知道运行有没有问题,试了后果然又崩了,内心是崩溃的。。。

iOS8.3崩溃还连崩溃原因都不给了,真的是给Xcode跪了,苦思冥想后决定把全局断点去掉看看效果,去掉后果然给了崩溃原因
An instance of class AVPlayerItem was deallocated while key value observers were still 。。。
这个好像说的是kvo没有移除的原因,然后果断在dealloc里移除了kvo。

至此终于解决了这个困扰好几天的问题。

相关文章

  • 视频开发记录

    最近一直在做视频的东西,记录下开发过程中遇到的坑和解决办法。 我们关于视频播放的模块有下载下来观看和线上观看两种,...

  • 2018-10-07

    从今天开始记录学习音视频开发的过程,待续......

  • 理解ijkplayer(一):开始

    前言我是一名打算走音视频路线的android开发者。以此系列文章开始,记录我的音视频开发学习之路ijkplayer...

  • 理解ijkplayer(三)从Java层开始初始化

    前言我是一名打算走音视频路线的android开发者。以此系列文章开始,记录我的音视频开发学习之路ijkplayer...

  • 理解ijkplayer(二)项目结构分析

    前言我是一名打算走音视频路线的android开发者。以此系列文章开始,记录我的音视频开发学习之路ijkplayer...

  • 理解ijkplayer(五)解码、播放

    前言我是一名打算走音视频路线的android开发者。以此系列文章开始,记录我的音视频开发学习之路ijkplayer...

  • 理解ijkplayer(四)拉流

    前言我是一名打算走音视频路线的android开发者。以此系列文章开始,记录我的音视频开发学习之路ijkplayer...

  • iOS音视频开发-视频会话捕捉

    好久没写东西了,iOS音视频开发抽出时间整理一下,权当备忘吧。iOS音视频开发原理文章在网上有很多了,就不记录了。...

  • 微信开发中的坑

    原文地址前些日子一直在做一些微信公众号的H5开发,在开发过程中遇到了不少坑。记录一下: 视频Android版的视频...

  • 使用 AVAssetWriter 录制小视频

    前言 最近在开发一个小项目,要用到 AVFoundation 来录制小视频,在开发的过程中遇到不少的坑,希望记录下...

网友评论

      本文标题:视频开发记录

      本文链接:https://www.haomeiwen.com/subject/siylvftx.html