AVPlayer不使用prelload

时间:2017-01-25 23:34:33

标签: ios objective-c iphone http-headers avplayer

当我尝试播放一些remoute音频文件时,我遇到了问题。

为此,我使用AvPlayer。 你怎么知道玩起初的东西我们开始预加载:

  • init AVURLAsset
  • set observer
  • init avplayer

示例:

 if (trackUrl) {
    self.asset = [AVURLAsset assetWithURL:trackUrl];
    NSArray *assetKeys = @[@"playable", @"hasProtectedContent"];

    self.playerItem = [AVPlayerItem playerItemWithAsset:self.asset
                           automaticallyLoadedAssetKeys:assetKeys];

    NSKeyValueObservingOptions options =
    NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew;

    [self.playerItem addObserver:self
                      forKeyPath:@"status"
                         options:options
                         context:playerItemContext];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(trackDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:self.playerItem];

    [self removePeriodicTimeObserver];
    self.player = [AVPlayer playerWithPlayerItem:self.playerItem];
    return;
}

因此,对于在响应标题“content-disposition:”中没有此字段的音频文件,一切正常。预加载过程非常快。

示例:http://podcast.cbc.ca/mp3/podcasts/asithappens_20160907_50906.mp3

但对于在响应标题“content-disposition:”中包含此字段的音频文件。预加载过程真的很长。

示例:https://ondemand.npr.org/anon.npr-mp3/npr/fa/2017/01/20170124_fa_01.mp3?orgId=427869011&topicId=1033&d=2209&p=13&story=511387528&t=progseg&e=511402985&seg=1&siteplayer=true&dl=1 enter image description here 看起来AvPlayer尝试加载所有文件,并且只有在播放之后才会加载。

问题:

你知道如何省略这么长的预载吗?

如何回复此字段“内容处理:”?

0 个答案:

没有答案