Плеер не отображается, пока экран заблокирован - PullRequest
0 голосов
/ 26 марта 2019

У меня проблема с отображением элементов управления плеером на экране блокировки (iOS 10 +).

Я проверяю «Аудио» в «Режимах фона»:

enter image description here

Установить аудиосессию:

import UIKit

import AVFoundation
import MediaPlayer

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var audio: AVAudioPlayer?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        let audioSession = AVAudioSession.sharedInstance()

        do {

            try audioSession.setCategory(AVAudioSession.Category.playback, mode: AVAudioSession.Mode.default, options: [])
            try audioSession.setActive(true)

        } catch {
            print(error)
        }

        do {
            let url = Bundle.main.url(forResource: "example", withExtension: "mp3")
            audio = try AVAudioPlayer(contentsOf: url!)
        } catch {
            print(error)
        }

        audio?.play()

        var nowPlayingInfo = [String : Any]()
        nowPlayingInfo[MPMediaItemPropertyArtist] = "Artist"
        nowPlayingInfo[MPMediaItemPropertyTitle] = "My Track"

        if let image = UIImage(named: "image") {
            nowPlayingInfo[MPMediaItemPropertyArtwork] = MPMediaItemArtwork(boundsSize: image.size) { size in
                return image
            }
        }

        nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = audio!.currentTime
        nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = audio!.duration
        nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = audio!.rate

        MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo

        return true
    }

}

После того, как экран заблокирован, звук продолжает воспроизводиться, но на заблокированном экране в это время нет элементов управления плеером.

Что не так с моим решением?

...