Iphone AVPlayer vs.AVAudioPlayer

Iphone AVPlayer vs.AVAudioPlayer,iphone,audio,streaming,ios4,core-audio,Iphone,Audio,Streaming,Ios4,Core Audio,缔约国声明如下: [该]播放器在处理本地和远程媒体文件时同样有效 然而,缔约国声明如下: Apple建议您使用该类进行音频播放,除非您正在播放从网络流捕获的音频 对于我正在做的工作,我需要AVAudioPlayer的一些功能,但我所有的音频都是流式传输的。我需要的AVAudioPlayer的主要内容是AVPlayer没有“playing”属性。除其他外,如果没有该属性,很难构建播放器UI 那么AVPlayer和AVAudioPlayer之间的区别是什么,使得后者不适合网络流媒体?是否有办法从AV

缔约国声明如下:

[该]播放器在处理本地和远程媒体文件时同样有效

然而,缔约国声明如下:

Apple建议您使用该类进行音频播放,除非您正在播放从网络流捕获的音频

对于我正在做的工作,我需要AVAudioPlayer的一些功能,但我所有的音频都是流式传输的。我需要的AVAudioPlayer的主要内容是AVPlayer没有“playing”属性。除其他外,如果没有该属性,很难构建播放器UI


那么AVPlayer和AVAudioPlayer之间的区别是什么,使得后者不适合网络流媒体?是否有办法从AVAudioPlayer提供的AVPlayer获取一些信息,例如“播放”属性?

AVPlayer实际上具有与AVAudioPlayer的播放属性类似的属性。 查看
rate
属性

  • AVPlayer可以使用带有iPod库url的AVURLAsset从AVPlayerItem播放。AVAudioPlayer无法从iPod库url播放

  • AVPlayer没有音量属性,需要使用系统音量设置,该设置只能由硬件开关或MPVolumeView控制。但您可以设置AVAudioPlayer的混合音量

  • AVPlayer在查找后似乎报告了错误的currentTime。但AVAudioPlayer报告准确

  • 7年后

    从依赖Swift和cocoapod的角度来看,我的答案是只比较iOS 8+

    1.iPod库支持

    2.音量控制 相同的支持:

    • 您可以直接设置
      AVAudioPlayer
      的混合音量
    3.寻求控制 AVPlayer和AVAudioPlayer在查找以下内容后似乎都报告了错误的currentTime:

    • 对于AVAudioPlayer
    • 对于AVPlayer,建议在初始化AVURLAssets时传递选项
      AvurlAssetPreferPrecisionDurationandTimingKey
    4.改变来源
    • 您只需要一个
      AVPlayer
      即可播放多个文件
    • 您需要多个
      AVAudioPlayer
      才能播放多个文件

    是的,我现在正在使用它,但它不是非常方便。谢谢你的主意!您好,Macinjosh,如果您想知道两者之间的确切区别,请发布。如果您需要AVPlayer创建AVURLAssets的确切时间,请在初始化时传递选项
    AVURLAssetPreferPreciseDurationAndTimingKey
    。胡萨!这仍然准确吗?在过去的三年里,有没有出现任何重要的变化?谢谢你。对我来说,AVPlayer在性能和获取当前时间的准确性方面做得非常完美。当您必须处理图形播放时间路径时,AVPlayer非常棒。它不是运行愚蠢的NSTimer,而是在GCD块中运行更平稳。检查-(id)addPeriodicTimeObserverForInterval:(CMTime)interval queue:(dispatch_queue_t)queue usingBlock:(void(^)(CMTime))块的示例;它工作得很好。@mkc842,自iOS 6以来,AVAudioPlayer可以从iPod库URL播放。此外,您还可以使用下面的代码设置AVPlayer的音量:我想补充一点,AVPlayer的完成和错误处理是混乱的(通知中心,kvo,当本地路径错误时根本不报告错误等)。AVAudioPlayer具有错误捕获和完成处理程序。