我有一个使用Superpowered作为音频播放器的音乐播放器。我按照这篇文章实现了一个播放器小部件。但是,小部件有时会显示,但很多时候不会。 我希望播放器小部件在播放音频时显示。
RemoteCommandManager.swift:(来自文章)
AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.beginReceivingRemoteControlEvents()
// Override point for customization after application launch.
// Initializer the `RemoteCommandManager`.
remoteCommandManager = RemoteCommandManager()
// Always enable playback commands in MPRemoteCommandCenter.
remoteCommandManager.activatePlaybackCommands(true)
// Setup AVAudioSession to indicate to the system you how intend to play audio.
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback, mode: AVAudioSessionModeDefault)
}
catch {
print("An error occured setting the audio session category: \(error)")
}
return true
}
PlayerManager.swift:
func play() {
let _ = try? AVAudioSession.sharedInstance().setActive(true)
superpowered.play()
}
更新:
我注意到以下情况:
如果正在播放 iTunes 曲目(即存在播放器小部件),那么我使用我的应用程序播放音频文件,播放器小部件会更改,以便显示我的应用程序的信息。
我的猜测是,当我激活音频会话时,播放器小部件会从 iTunes 切换到我的应用程序。但是,当播放器小部件不存在时,激活音频会话将无法显示它。