AVQueuePlayer状态访问错误

时间:2012-02-06 05:15:53

标签: objective-c cocoa-touch avplayer

我想弄明白obj-c/cocoa touchAVPlayer。我可以毫无问题地构建和播放AVQueuePlayer

NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [self buildPlayerItem:@"http://<some url>first.mp3"]];
[items addObject: [self buildPlayerItem:@"http://<some url>second.mp3"]];

self.queuePlayer = [[AVQueuePlayer alloc] initWithItems:items];

我可以在advanceToNextItem上调用播放,暂停,currentItemself.queuePlayer,但是对[self.queuePlayer status]方法的任何调用或尝试访问self.queuePlayer.status属性都会导致该应用程序抛出EXC_BAD_ACCESS错误。我在尝试获取queuePlayer的currentItem状态时遇到了同样的问题。

我的理解是这个错误表明我正在尝试访问已释放的对象的属性,但是

1)我正在使用ARC 2)self.queuePlayer似乎不可能被释放,因为我可以在其上调用play,和 3)status是self.queuePlayer的一个属性,而不是我自己的一个类中的属性,所以AVQueuePlayer实现中的某些东西可能是管理状态变量。

1 个答案:

答案 0 :(得分:0)

事实证明AVPlayer的状态属性是一个int ...我原以为它是NSString或更复杂的东西。所以问题不是引用一个释放的对象,而是使用%@打印一个int。