使用AVPlayer时重复加载影片数据,以及如何停止加载影片数据

时间:2013-10-15 04:31:37

标签: ios avplayer

我使用AVQueuePlayer(AVPlayer)进行视频流(http协议,MP4格式)。 我的代码是(参考AV基础编程指南)

AVURLAsset *asset = [AVAsset assetWithURL:movieUrl];
NSArray *keys = [NSArray arrayWithObject:@"playable"];
[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() {
   dispatch_async(dispatch_get_main_queue(), ^{
    NSError *error = nil;
            AVKeyValueStatus status = [asset statusOfValueForKey:@"playable" error:&error];
            switch (status) {
                case AVKeyValueStatusLoaded: {
                    self.movieItem = [AVPlayerItem playerItemWithAsset:asset];
                    [self.player insertItem:self.movieItem afterItem:nil];
                }
                case AVKeyValueStatusFailed: {
                    break;
                }
                case AVKeyValueStatusCancelled: {
                    break;
                }
                default:
                    break;
            }
        });
    }];

观察AVPlayer.status是否像这样玩

switch (status) {
    case AVPlayerItemStatusUnknown:
        break;
    case AVPlayerItemStatusReadyToPlay:
        NSLog(@"READY TO PLAY");
            [myPlayer play];
        break;
    case AVPlayerItemStatusFailed:
        break;
    default:
        break;
}

这些代码运行良好。 但是,当我监控网络流量的使用情况并通过监控工具(如小提琴手)请求时, 我发现了一些重复请求电影网址和加载数据的问题。

我尝试停止加载电影数据(将播放器设置为nil OR player removeAllItems)但是它无效。

我想我用正确的方法来加载电影数据,我该怎么做才能停止加载。

0 个答案:

没有答案