gpt4 book ai didi

ios - 有没有办法使用 AVAudioEngine 和 AVAudioPlayerNode 显示锁屏控件?

转载 作者:行者123 更新时间:2023-12-01 15:57:55 24 4
gpt4 key购买 nike

我在我的应用程序中使用 AVAudioEngine 和 AVAudioPlayerNode 处理音频播放,我想实现远程控制。背景音频已配置并正常工作。

控制中心控制工作,但当我从应用程序内部播放/暂停音乐时,播放/暂停按钮不会更新。 我正在真实设备上进行测试。

Control center screenshot

这是我的 AVAudioSession 设置代码:

func setupAudioSession() {

UIApplication.shared.beginReceivingRemoteControlEvents()

do {
try AVAudioSession.sharedInstance().setActive(true)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch let sessionError {
print("Failed to activate session:", sessionError)
}
}

MPRemoteCommandCenter 设置:
func setupRemoteControl() {

let commandCenter = MPRemoteCommandCenter.shared()

commandCenter.playCommand.isEnabled = true
commandCenter.playCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
self.audioPlayerNode.play()
return .success
}

commandCenter.pauseCommand.isEnabled = true
commandCenter.pauseCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
self.audioPlayerNode.pause()
return .success
}
}

锁屏控制 - 从未出现过。

最佳答案

所以这是我的问题的解决方案,我正在启动我的 AVAudioEngine 及其从 viewDidLoad() 调用的设置函数,这就是问题所在,我使用了 .play()/.pause()我的 AVAudioPlayerNode 上的方法来操作音频,但是 AVAudioPlayerNode 不发出主音频 , AVAudioEngine 的 outputNode 确实如此。

因此,无论何时您想从应用程序内部或命令中心播放/暂停音频,如果您在应用程序中使用 AVAudioEngine 处理音频,请不要忘记调用 .stop()/.start() AVAudioEngine 上的方法。即使没有将单个属性设置为 MPNowPlayingInfoCenter.default().nowPlayingInfo,锁定屏幕控件也应该显示,播放/暂停按钮应该在命令中心/锁定屏幕中正确更新。 .

MPRemoteCommandCenter 设置:

func setupRemoteControl() {

let commandCenter = MPRemoteCommandCenter.shared()

commandCenter.playCommand.isEnabled = true
commandCenter.playCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
try? self.audioEngine.start()
return .success
}

commandCenter.pauseCommand.isEnabled = true
commandCenter.pauseCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
self.audioEngine.stop()
return .success
}
}

关于ios - 有没有办法使用 AVAudioEngine 和 AVAudioPlayerNode 显示锁屏控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com