이 완료 얻을 KVO를 사용해야합니다. 이 같은 대기열에 추가하는 각 항목에 대한
, 당신 수 있습니다 설치 관계자 :
item_ = [[AVPlayerItem playerItemWithURL:[NSURL URLWithString:@"http://somefunkyurl"]] retain];
[item_ addObserver:self forKeyPath:@"status" options:0 context:nil];
[item_ addObserver:self forKeyPath:@"playbackBufferEmpty" options:0 context:nil];
은 이제 관찰자 방법 내에서 해당 항목의 상태를 평가할 수 있습니다; 당신이 활동 표시 또는 '버퍼링'경고를 표시 할 수 있도록
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([object isKindOfClass:[AVPlayerItem class]])
{
AVPlayerItem *item = (AVPlayerItem *)object;
//playerItem status value changed?
if ([keyPath isEqualToString:@"status"])
{ //yes->check it...
switch(item.status)
{
case AVPlayerItemStatusFailed:
NSLog(@"player item status failed");
break;
case AVPlayerItemStatusReadyToPlay:
NSLog(@"player item status is ready to play");
break;
case AVPlayerItemStatusUnknown:
NSLog(@"player item status is unknown");
break;
}
}
else if ([keyPath isEqualToString:@"playbackBufferEmpty"])
{
if (item.playbackBufferEmpty)
{
NSLog(@"player item playback buffer is empty");
}
}
}
}
또한 버퍼가 재생되는 동안 비워 때/경우 감지 할 AVPlayerItem 개체의 playbackBufferEmpty 속성을 관찰 할 수있다. – reddersky
@virorum 좋은 지적, 그 하나를 내 대답에 추가했습니다! – Till
당신 수 항상 당신이 – reddersky