我的应用程序结合了视频序列,并根据情况将音乐添加到最终序列。添加音乐后,该应用会检查用户是否选择了一段视频作为开场,然后将其组合成最终视频。
在运行 profiler 时,我在第二次和第三次执行此操作时发现内存泄漏:
AVMutableComposition *composition = [AVMutableComposition composition];
合并初始视频序列时,未显示内存泄漏。但是,如果该应用程序添加了音乐和介绍,它就会泄漏内存。
添加音乐时,我会创建一个新的乐曲,而在添加前奏时,我会创建一个新的乐曲。它不会发生在代码的同一部分。
这是问题吗?我不能创建多个 AVMutableComposition?我怎样才能摆脱这些内存泄漏?
最佳答案
我也遇到过这个问题,但我只是对我的组合变量进行了一次赋值,如下所示:
AVMutableComposition* tSilencingComposition = [AVMutableComposition composition];
我不再重复使用组合指针,而是将其分配给 nil 并让 ARC 在应用程序运行期间执行它的操作——但每次我点击这条线时,我都会收到泄漏报告。好像是AVMutableComposition里面的东西。
仪器报告我在此作业中泄漏了 6 个字节,进一步深入研究会围绕这些 FigXPC* 调用生成相同的报告..
关于ios - AVMutableComposition 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48806361/