关于该主题的所有主题都非常老(5岁以上),我似乎无法形成清晰的MODERN方法,因此希望可以在2020年进行总结(Swift 5,Xcode 11)。] >
如果您要使用iOS 13
为iPhone构建AUDIO(不仅仅是音乐)播放器应用程序,请采用前瞻性思考的方式(不要在意任何不支持iOS 14的东西-没什么了低于8),如果要求是...,您将使用什么套件/类...也许某些要求是相互排斥的,甚至是不可能的,但是我不明白为什么控制音频播放的方法如此之多,在它们的用例之间没有清楚的描述,或者如果音频是音乐,为什么这很重要或语音,下载或流式传输。音频显然是苹果视频的二等公民,尤其是语音,但我认为现在某些类型的基本应用(例如播放列表,播客和其他类型的音频应用)应该有一定的发展方向。
关于该主题的所有主题都非常老(5岁以上),我似乎无法形成清晰的MODERN方法,因此希望可以在2020年进行总结(Swift 5,Xcode 11)。如果要构建...
应用程序可以本地存储和播放下载的MP3文件(不一定是流媒体或嵌入的)。
用户对音频具有基本的播放器控制(播放/暂停/滚动/音量)。
AVAudioPlayer
具有对播放的声音文件的所有必需控制。应用程序具有音频队列(曲目播放顺序),可以随时通过应用程序进行调整。
AVQueuePlayer
继承的AVPlayer
。查看苹果的文档here。用户可以选择在与手机配对的蓝牙音频设备上播放。
AVAudioSession
选项。检查文档here。音频可以在后台播放(当屏幕关闭或在其他应用中)。
BackgroundMode
功能并检查音频,播放选项。音频可以在后台触发曲目并调整队列(无需用户交互)。
音频与本机iOS控件(RemoteControlEvents)集成。
MPNowPlayingInfoCenter
并更新其信息,以便能够更新歌曲标题,艺术家,插图等。Apple的文档here。MPRemoteCommandCenter
以外,还可以收听事件并相应地更新播放器docs。应用程序音频可以像应用程序的指示一样叠加播放音乐(我意识到这抵消了背景和“正在播放”的功能,但也许有助于为更清晰的理由进行讨论,从而为应用程序开发人员选择一种方法。
AVAudioSession's
类别选项中,添加.mixWithOthers
选项。那么您将使用AVAudioPlayer还是AVPlayer或MPMusicPlayerController? MPRemoteCommandCenter或MPNowPlayingInfoCenter?
MPMusicPlayerController
。我认为以上总结了它的亮点。当您一起使用这些东西时,有很多事情需要您注意,例如,并非所有选项都适用于所有AVAudioSession's
模式。播放器内部有许多属性,设置错误的设置可能会导致播放器无法工作。