0

我正在使用 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

出现问题的资产似乎发生了变化,如果我重新启动应用程序并再次加载相同的资产,它会正确加载。

有没有人见过这个?知道我可能做错了什么吗?

4

1 回答 1

0

我相信问题是 CMSampleBufferRef 没有被释放。一次从 iPod 库中打开了太多项目。在其他设备上确实发生了相同的行为,只是在具有更多 RAM 的设备上花费了更长的时间。

于 2011-09-01T16:21:07.710 回答