我使用MediaItem api从iPod库收集资源。在应用程序运行一段时间后,我遇到了一个奇怪的错误。我将运行以下代码,AVURLAsset将没有相关的轨道。
NSURL* url = [iPodSong valueForProperty:MPMediaItemPropertyAssetURL];
mAssetToLoad = [[AVURLAsset alloc] initWithURL:url options:nil];
bool protectedCon = mAssetToLoad.hasProtectedContent;
bool exportable = true;//mAssetToLoad.exportable; //4.3 only
if(!protectedCon && exportable) {
AVAssetTrack* songTrack = [mAssetToLoad.tracks objectAtIndex:0];
//CRASH tracks is of size 0
问题发生的资产似乎发生了变化,如果我重新启动应用并再次加载相同的资产,则会正确加载。
有没有人见过这个?知道我可能做错了吗?
答案 0 :(得分:0)
我认为问题是CMSampleBufferRef没有被释放。因此,iPod库一次打开的项目太多了。在其他设备上也发生了相同的行为,只需要更长时间内存在更多内存的设备。