AVPlayer与AVAudioPlayer
AVPlayer的文档声明如下:
播放器与本地和远程媒体文件同样适用
但是, AVAudioPlayer的文档声明如下:
除非您正在播放从networkingstream捕获的audio,否则Applebuild议您使用此类进行audio播放
对于我所做的工作,我需要AVAudioPlayer的一些function,但是我所有的audio都是stream式传输的。 AVPlayer没有的AVAudioPlayer需要的主要function是“播放”属性。 build立一个没有这个属性的玩家UI是很困难的。
那么AVPlayer和AVAudioPlayer有什么区别,使得后者不适合networkingstream媒体? 有没有办法从AVPlayer获得AVAudioPlayer提供的一些信息,如“正在播放”属性?
- 
AVPlayer可以使用带有iPod库url的AVURLAsset从AVPlayerItem播放。 AVAudioPlayer无法播放iPod库的url。 
- 
AVPlayer没有音量属性,需要使用系统音量设置,只能通过硬件开关或MPVolumeView控制。 但是你可以设置AVAudioPlayer的混音音量。 
- 
AVPlayer似乎在search后报告错误的currentTime。 但AVAudioPlayer准确报告。 
  AVPlayer实际上具有与AVAudioPlayer的播放属性相似的属性。 看看rate属性。 
7年后…
从依赖Swift和CocoaPods的angular度来看,所以我的答案只是比较iOS 8+ 。
1.支持iPod库
自iOS6以来一直支持
2.音量控制
相同的支持:
-  您可以直接设置AVAudioPlayer的混音音量。
-   您可以使用AVPlayer上的AVAudioMix设置AVPlayer的混音音量
3.寻求控制
search后,AVPlayer和AVAudioPlayer似乎都报告错误的currentTime:
-  对于AVAudioPlayer, build议在查找前stop()AVAudioPlayer
- 对于AVPlayer,build议在初始化AVURLAssets时传递选项AVURLAssetPreferPreciseDurationAndTimingKey。 并依靠观察员块提供的价值观 。
4.改变来源
-  你只需要一个AVPlayer来播放多个文件
-  你需要多个AVAudioPlayer来播放多个文件