使用 AVAudioPlayer 控制锁定屏幕上的音频

Posted

技术标签:

【中文标题】使用 AVAudioPlayer 控制锁定屏幕上的音频【英文标题】:Control audio on lock screen using AVAudioPlayer 【发布时间】:2017-12-19 15:55:20 【问题描述】:

我为音频启用了后台模式,并且我使用此方法播放文件,但是当屏幕锁定时我无法控制它们。

func loadSound(resource: String, soundExtension: String) 
    guard let url = Bundle.main.url(forResource: resource, withExtension: soundExtension) else 
        return
    

    UIApplication.shared.beginReceivingRemoteControlEvents()

    do 
        try AVAudiosession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        try AVAudioSession.sharedInstance().setActive(true)

        player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)
     catch let error 
        print(error.localizedDescription)
    

【问题讨论】:

【参考方案1】:

遇到同样问题的人,在问题方法中调用这个方法

fileprivate let remoteCommandCenter = MPRemoteCommandCenter.shared()

func activateControlCenterCommands() 

    remoteCommandCenter.playCommand.addTarget(self, action: #selector(handlePlayCommandEvent(_:)))
    remoteCommandCenter.pauseCommand.addTarget(self, action: #selector(handlePauseCommandEvent(_:)))

    remoteCommandCenter.playCommand.isEnabled = true
    remoteCommandCenter.pauseCommand.isEnabled = true

【讨论】:

以上是关于使用 AVAudioPlayer 控制锁定屏幕上的音频的主要内容,如果未能解决你的问题,请参考以下文章

在 iPad 锁定屏幕(背景)上显示 AVAudioplayer 持续时间和经过时间

Swift:在锁定屏幕上添加前进/后退 15 秒按钮

通过锁定屏幕上的硬件按钮提供对音量控制的访问

如何更改锁定屏幕/控制中心的轨道位置?

iPhone:MPMusicPlayerController 停止 AVAudioPlayer

设备锁定时,AVAudioPlayer 不会播放