在swift中无法控制来自控制中心的音频

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

我有一个控制中心的问题我需要通过控制中心从后台控制音频播放我设置了以下代码:

    override func viewDidLoad() {
        super.viewDidLoad()
     let mpic = MPNowPlayingInfoCenter.default()
            mpic.nowPlayingInfo = [
                MPMediaItemPropertyTitle:arrayOfUrl[index].lastPathComponent,
                MPMediaItemPropertyArtist:"Collection Of Audios"
            ]
}

我收到来自的控制事件

override func remoteControlReceived(with event: UIEvent?)

我设置以下代码

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        UIApplication.shared.beginReceivingRemoteControlEvents()
        self.resignFirstResponder()
    }

一切都很好,工作问题只有我可以控制我的音频从控制中心如果我播放一个音乐和从这个音乐我退出应用程序在这种情况下我可以控制音频喜欢播放,暂停,下一个等等但如果我试图通过应用程序从另一个页面控制来自控制中心的音频控制中心没有响应下一个,之前我的代码中的错误,请帮助控制中心响应我的应用程序来自我的应用程序中的任何地方就像我播放音频一样,我退出页面音频和当前播放的音频,然后从该页面退出应用程序

非常感谢你

swift3 avfoundation controls center
1个回答
0
投票

这篇文章太旧了,但也许这可以帮助别人。您可以将此方法添加到您的班级:

//*****************************************************************
// MARK: - Remote Command Center Controls
//*****************************************************************

func setupRemoteCommandCenter() {
    // Get the shared MPRemoteCommandCenter
    let commandCenter = MPRemoteCommandCenter.shared()

    // Add handler for Play Command
    commandCenter.playCommand.addTarget { event in
        //Do stuff here or play your mediaPlayer
        return .success
    }

    // Add handler for Pause Command
    commandCenter.pauseCommand.addTarget { event in
        //Do stuff here or pause your mediaPlayer
        return .success
    }

    // Add handler for Next Command
    commandCenter.nextTrackCommand.addTarget { event in
        //Do stuff 
        return .success
    }

    // Add handler for Previous Command
    commandCenter.previousTrackCommand.addTarget { event in
        //Do stuff 
        return .success
    }
}

然后在onCreate方法中调用该方法:

// Setup Remote Command Center
    setupRemoteCommandCenter()
© www.soinside.com 2019 - 2024. All rights reserved.