当我尝试播放一些remoute音频文件时,我遇到了问题。
为此,我使用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 看起来AvPlayer尝试加载所有文件,并且只有在播放之后才会加载。
问题:
你知道如何省略这么长的预载吗?
如何回复此字段“内容处理:”?