播放器实现
变播便下
播放内部状态
// 如果资源加载比较慢 会导致不播放音频
AVPlayer *player = [AVPlayer playerWithURL:url];
[player play];
另一种方式 KVO监听资源组织状态
AVURLAsset * asset = [AVURLAsset assetWithURL:url];
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
// 当资源的组织者 告诉我们资源组织好了再播放
AVPlayer *player = [AVPlayer playerWithPlayerItem:item];
播放 暂停 快进快退 倍速 静音 下载进度
播放器事件 数据提供
状态
通过通知
播放磁盘缓存
拦截系统加载进行缓存
关于网络音频的加载 调用代理相关方法 进行加载的
拦截时 需要重新修改它的代理方法就可以
- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForLoadingOfRequestedResource:(AVAssetResourceLoadingRequest *)loadingRequest
[dataRequest respondWithData:[filedata subdataWithRange:NSMakeRange((NSUInteger)startOffset- self.task.offset, (NSUInteger)numberOfBytesToRespondWith)]];
实现边下边播