AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPNowPlayingInfoCenter for iOS 13+ app之间的差异

问题描述 投票:1回答:1

关于该主题的所有主题都非常老(5岁以上),我似乎无法形成清晰的MODERN方法,因此希望可以在2020年进行总结(Swift 5,Xcode 11)。] >

如果您要使用iOS 13

为iPhone构建AUDIO(不仅仅是音乐)播放器应用程序,请采用前瞻性思考的方式(不要在意任何不支持iOS 14的东西-没什么了低于8),如果要求是...,您将使用什么套件/类...
  • 应用程序可以本地存储和播放下载的MP3文件(不一定是流媒体或嵌入的。)>
  • 用户对音频具有基本的播放器控制(播放/暂停/滑动/音量)。
  • 应用程序具有音频队列(曲目播放顺序),可以随时通过应用程序进行调整。
  • 用户可以遍历(向后/向前搜索)队列。
  • 用户可以选择在与手机配对的蓝牙音频设备上播放。
  • 音频可以播放[[在后台
  • (当屏幕关闭或在其他应用中)。该应用可以触发跟踪并调整队列
  • 在后台
  • (无需用户交互)。音频与本机iOS控件(RemoteControlEvents)集成。
  • 根据Apple的指导,该应用是“可立即使用的应用”。奖励(如果可能的话):
  • [应用程序音频可以像应用程序的指示一样叠加播放音乐(我意识到这可能使背景和“正在播放”的功能无效,但也许有助于为更清晰的理由进行讨论,从而为应用程序开发人员选择一种方法。]]
  • 那么您将使用AVAudioPlayer还是AVPlayer或MPMusicPlayerController? MPRemoteCommandCenter或MPNowPlayingInfoCenter?
  • 也许某些要求是相互排斥的,甚至是不可能的,但是我不明白为什么控制音频播放的方法如此之多,在它们的用例之间没有清楚的描述,或者如果音频是音乐,为什么这很重要或语音,下载或流式传输。音频显然是苹果视频的二等公民,尤其是语音,但我认为现在某些类型的基本应用(例如播放列表,播客和其他类型的音频应用)应该有一定的发展方向。

关于该主题的所有主题都非常老(5岁以上),我似乎无法形成清晰的MODERN方法,因此希望可以在2020年进行总结(Swift 5,Xcode 11)。如果要构建...

我将尽我所能尝试回答您的问题:

应用程序可以本地存储和播放下载的MP3文件(不一定是流媒体或嵌入的)。

    您可以使用AVPlayerAVAudioPlayerAVPlayer具有更多功能。请查阅Apple文档here中的AVPlayer。而here代表AVAudioPlayer
  • 用户对音频具有基本的播放器控制(播放/暂停/滚动/音量)。

    • [AVAudioPlayer具有对播放的声音文件的所有必需控制。
  • 应用程序具有音频队列(曲目播放顺序),可以随时通过应用程序进行调整。

    • 您需要使用从AVQueuePlayer继承的AVPlayer。查看苹果的文档here
  • 用户可以选择在与手机配对的蓝牙音频设备上播放。

    • 从上面选择哪一个都没关系。此AVAudioSession选项。检查文档here
  • 音频可以在后台播放(当屏幕关闭或在其他应用中)。

    • 您需要为您的应用添加BackgroundMode功能并检查音频,播放选项。
  • 音频可以在后台触发曲目并调整队列(无需用户交互)。

    • 您需要添加应用扩展程序来操纵您的queuePlayer。
  • 音频与本机iOS控件(RemoteControlEvents)集成。

    • 使用MPNowPlayingInfoCenter并更新其信息,以便能够更新歌曲标题,艺术家,插图等。Apple的文档here
  • 除了MPRemoteCommandCenter以外,还可以收听事件并相应地更新播放器docs

    应用程序音频可以像应用程序的指示一样叠加播放音乐(我意识到这抵消了背景和“正在播放”的功能,但也许有助于为更清晰的理由进行讨论,从而为应用程序开发人员选择一种方法。

    • 也在AVAudioSession's类别选项中,添加.mixWithOthers选项。
  • 那么您将使用AVAudioPlayer还是AVPlayer或MPMusicPlayerController? MPRemoteCommandCenter或MPNowPlayingInfoCenter?

  • 如果从设备库播放,请使用MPMusicPlayerController

    我认为以上总结了它的亮点。当您一起使用这些东西时,有很多事情需要您注意,例如,并非所有选项都适用于所有AVAudioSession's模式。播放器内部有许多属性,设置错误的设置可能会导致播放器无法工作。

    avplayer avaudioplayer mpmusicplayercontroller mpnowplayinginfocenter mpremotecommandcenter
    1个回答
    0
    投票
    我将尽我所能尝试回答您的问题:
    © www.soinside.com 2019 - 2024. All rights reserved.