Tag: 控制中心

后台音频播放器同步控制中心

在本教程中,您将创建一个能够在后台模式下播放音频并与Control Center中的音乐控件同步的播放器。 特征: 播放声音文件。 使声音在后台模式下继续播放。 从控制中心控制音频。 处理完成。 处理中断。 处理路线更改。 如果您遇到任何问题,可以在这里下载完整的源代码项目,然后再使用每个功能。 1.播放声音文件 要播放声音文件,您需要初始化播放器。 阅读以下文章以了解有关AVAudioPlayer的信息: AVAudioPlayer 音频播放器,可播放文件或内存中的音频数据。 将以下块代码添加到视图控制器中以初始化播放器: 您还需要准备一个mp3文件进行测试。 要播放mp3文件,请按如下所示调用play()方法: player.play() 现在,您可以从导入的文件中听到声音。 但是,当您按“主页”按钮将应用程序移至背景模式时,声音已被静音。 因此,我们需要让它在下一指南中继续在后台模式下播放。 2.使声音在后台模式下继续播放 要使声音在后台模式下继续播放,您需要阅读以下文章: AVAudioSession 与系统通信的中介对象,您打算如何在应用程序中使用音频。 启用背景音频 配置您的应用,使其在进入后台时继续播放音频。 如下替换AppDelegate.swift文件的application(_:didFinishLaunchingWithOptions:)方法以配置音频会话: 现在运行该应用程序,播放声音,然后按“主页”按钮将应用程序移至背景模式,并检查声音是否仍继续播放。 3.从控制中心控制音频 阅读以下文章,了解如何从“控制中心”和“ iOS锁定”屏幕控制背景音频: 控制背景音频 支持从控制中心和iOS锁定屏幕控制背景音频。 将以下方法添加到视图控制器中,并从viewDidLoad()方法调用setupRemoteTransportControls() , setupNowPlaying() viewDidLoad()方法: 现在运行该应用程序,打开“控制中心”并进行检查。 4.处理完比赛 音频播放器播放完毕后,您需要更新nowPlayingInfo和UI。 要接收此事件,您需要实现AVAudioPlayerDelegate协议的audioPlayerDidFinishPlaying(_:successfully :)方法,并如下更新setUpPlayer()方法: 运行该应用程序并进行检查。 5.处理中断 在后台模式下播放时,如果打来电话,则声音会静音,但在挂断电话时,声音不会自动继续播放。 因此,我们需要阅读以下文章来处理这些中断事件: 响应音频会话中断 直接观察音频会话通知,以确保您的应用响应中断。 在中断结束时添加以下代码片段以自动播放: 现在运行该应用程序并进行测试。 6.处理路线变更 现在,当您将耳机插入手机时,声音将在耳机上发出。 但是当您拔下耳机插头时,声音会自动继续在内置扬声器上播放。 […]