Mik*_*keG 5 audio media-player ios swift
我在我的iPhone 6s设备上使用iOS 10.2进行测试.
我正在播放流式音频,能够播放/暂停音频,跳过曲目等.我还启用了背景模式,音频在后台播放并继续正确播放播放列表.我唯一的问题是让锁屏控件显示出来.什么都没有显示......
在我的MainViewController的viewDidLoad()中,当我的应用程序启动时,我称之为...
func setupAudioSession(){
UIApplication.shared.beginReceivingRemoteControlEvents()
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.mixWithOthers)
self.becomeFirstResponder()
do {
try AVAudioSession.sharedInstance().setActive(true)
print("AVAudioSession is Active")
} catch let error as NSError {
print(error.localizedDescription)
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
在我开始播放音频之后,在我的AudioPlayer课程中,我打电话给...
func setupLockScreen(){
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.nextTrackCommand.isEnabled = true
commandCenter.nextTrackCommand.addTarget(self, action:#selector(skipTrack))
MPNowPlayingInfoCenter.default().nowPlayingInfo = [MPMediaItemPropertyTitle: "TESTING"]
}
Run Code Online (Sandbox Code Playgroud)
当我锁定iPhone然后再次点击电源按钮进入锁定屏幕时,根本不显示音频控件.好像没有播放音频,我只看到我正常的背景照片.此外,控制面板中不显示任何控件(在主屏幕上向上滑动,然后向左滑动到音乐控件所在的位置).
问题是因为我没有使用AVAudioPlayer或AVPlayer?但是,例如,Spotify如何使用他们自己的自定义音频播放器来显示锁定屏幕控件?感谢您的任何建议/帮助
问题结果是这条线......
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.duckOthers)
Run Code Online (Sandbox Code Playgroud)
一旦我把它改成了
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [])
Run Code Online (Sandbox Code Playgroud)
一切正常.因此,似乎传入AVAudioSessionCategoryPlaybackOptions的任何参数都会导致锁屏控件无法显示.我也试过传入.mixWithOthers一个也导致锁定屏幕控制不显示