我特别想弄明白obj-c/cocoa touch和AVPlayer。我可以毫不费力地构建和播放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];我可以在self.queuePlayer上调用play、pause、advanceToNextItem和currentItem,但任何对[self.queuePlayer status]方法的调用或试图访问self.queuePlayer.status属性都会导致应用程序抛出EXC_BAD_ACCESS错误。我在尝试获取队列播放器的currentItem的状态时也遇到了同样的问题。
我的理解是,此错误指示我正在尝试访问已释放的对象上的属性,但是
1)我正在使用ARC 2) self.queuePlayer似乎不可能被释放,因为我可以在它上面调用play,3) status是self.queuePlayer的属性,而不是我自己的类中的属性,所以可能AVQueuePlayer实现中的某个东西正在管理status变量。
发布于 2012-02-07 00:15:37
原来AVPlayer的status属性是一个整数……我以为它是一个NSString或更复杂的东西。所以问题不是引用一个释放的对象,而是打印一个带有%@的int。
https://stackoverflow.com/questions/9155841
复制相似问题