【发布时间】:2018-02-13 06:46:26
【问题描述】:
我是 swift 新手,我有一个在特定屏幕上播放良好的 AVPlayer。我的目标是在锁屏模式下播放相同的音频。到目前为止,这就是我所做的,代码如下。出于某种原因,我根本没有在锁屏情绪上看到播放器小部件。我在这里做错了什么。
class MyAudiosViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,AVAudioPlayerDelegate {
@IBAction func playButtonPressed(_ sender: Any) {
if(currentRowSelected != nil ){
if AudioPlayer.isPlaying() {
AudioPlayer.pause()
playButton.setImage(UIImage(named: "play_button"), for: UIControlState.normal)
} else {
AudioPlayer.play()
playButton.setImage(UIImage(named: "pause_button"), for: UIControlState.normal)
}
setUpBackgroundMode()
}else{
"Track is not selected from list"
}
}
}
extension MyAudiosViewController {
override func remoteControlReceived(with event: UIEvent?) {
if let receivedEvent = event {
if (receivedEvent.type == .remoteControl) {
switch receivedEvent.subtype {
case .remoteControlTogglePlayPause:
playButtonPressed(AudioPlayer.isPlaying())
case .remoteControlPlay:
playButtonPressed(AudioPlayer.player?.play())
case .remoteControlPause:
playButtonPressed(AudioPlayer.player?.pause())
case .remoteControlNextTrack:
print("next pressed")
case .remoteControlPreviousTrack:
print("previous pressed")
default:
print("received sub type \(receivedEvent.subtype) Ignoring")
}
}
}
}
func setUpBackgroundMode() {
if let positionSong = AudioPlayer.getPlayingIndex() {
let song = songDetailsArray[positionSong]
let songData = song.audioDetails
MPNowPlayingInfoCenter.default().nowPlayingInfo = [
MPMediaItemPropertyTitle: songData?.title ?? "",
MPMediaItemPropertyArtist: songData?.healerName ?? "",
MPMediaItemPropertyPlaybackDuration:
self.player?.currentItem?.asset.duration
]
UIApplication.shared.beginReceivingRemoteControlEvents()
becomeFirstResponder()
}
}
}
【问题讨论】:
标签: ios swift avplayer swift4 lockscreen