如何在swift 3中为每个在锁定屏幕中播放的音乐添加图像?

时间:2017-07-20 17:54:19

标签: ios swift3 avaudioplayer lockscreen

我有一个播放器,在swift 3中播放音乐,并希望在我搜索的每首歌曲中锁定屏幕中显示图像堆栈溢出但是代码对我没有帮助,请告诉我一些简单的事情,因为我没有'我想使用不同的图像!我只是想在应用程序在锁定屏幕中播放歌曲时显示一个图像 所以这是我的代码

var player : AVAudioPlayer = AVAudioPlayer()
let audioPath = Bundle.main.path(forResource: "Torpedo", ofType: "mp3")
            try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)

        }catch {

            //Error

        }


        let session = AVAudioSession.sharedInstance()
        do {

            try session.setCategory(AVAudioSessionCategoryPlayback)

        }

        catch {



        }
  player.play()

这是我使用的代码但是没有用

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = [MPMediaItemPropertyArtist : AudioCenter.sharedInstnce.currentReciter().name,
                                                                 MPMediaItemPropertyTitle : AudioCenter.sharedInstnce.currentSurah()!.name,
                                                                 MPMediaItemPropertyArtwork:MPMediaItemArtwork(image: UIImage(named: "Logo")!)]

1 个答案:

答案 0 :(得分:1)

设置音频会话的会话播放类别,您将在其中更新 MPNowPlayingInfoCenter.defaultCenter()。nowPlayingInfo

       try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: [])
       try! AVAudioSession.sharedInstance().setActive(true)

<强> EDIT1

添加VC的 viewDidLoad

self.becomeFirstResponder()
UIApplication.shared.beginReceivingRemoteControlEvents()

如果你的VC中没有它,还要再添加1个方法

 override var canBecomeFirstResponder: Bool { return true }

<强> EDIT2
试试

   try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.mixWithOthers)

而不是

   try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: [])