私は Apple CarPlay アプリを作成しています。私のリスト アイテムは、メディア プレーヤーが再生されているかどうかを確認する必要があります。
メディア プレーヤーが再生を開始するまで、糸車を表示する必要があるためです。
MPRemoteCommandCenter
次のようなことにアクセスして実行する必要があることはわかっています。
let commandCenter = MPRemoteCommandCenter.shared()
// Add handler for Play Command
commandCenter.playCommand.addTarget { [unowned self] event in
if self.player?.rate == 0.0 {
self.player?.play()
return .success
}
return .commandFailed
}
// Add handler for Pause Command
commandCenter.pauseCommand.addTarget { [unowned self] event in
if self.player?.rate == 1.0 {
self.player?.pause()
return .success
}
return .commandFailed
}
しかし、私はすでにメディアプレーヤー (mediaplayer.swift) を持っているので、それを見ることができると思いました。
if ステートメントを実行しようとしましたが、うまくいきませんでした。
if MusicPlayer.shared.player?.rate == 1.0 {
completion()
}
ただし、これを実行するためにメディア プレーヤーが再生されるまで待機するのではなく、チェックを行い、チェック時に再生中の場合は完了し、それ以外の場合は回転し続けます。
私はこれを行う方法があることを知っています。私の考えでは、メディア プレーヤーを監視する関数を作成する必要がありますか?