MPRemoteCommandCenterとMPNowPlayingInfoCenterを使用してバックグラウンドでオーディオの再生を制御しています。バックグラウンドでオーディオを再生するときにiOSロック画面の音量バーを非表示にする
let commandCenter = MPRemoteCommandCenter.sharedCommandCenter()
commandCenter.pauseCommand.enabled = true
commandCenter.pauseCommand.addTarget(self, action: #selector(AudioPlayer.remoteCmdPause))
commandCenter.playCommand.enabled = true
commandCenter.playCommand.addTarget(self, action: #selector(AudioPlayer.remoteCmdplay))
や音声データを更新する:setupコマンドコールバックに
let artWork = MPMediaItemArtwork(image: image)
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = [
MPMediaItemPropertyTitle: self.title,
MPMediaItemPropertyArtwork: artWork,
MPMediaItemPropertyPlaybackDuration: self.duration,
//MPNowPlayingInfoPropertyElapsedPlaybackTime: 0
]
これは私がremoteCmdPauseとremoteCmdPlayコールバックで処理することができ、一時停止/再生ボタンを示しています。ボリュームの変化に反応できるように、ハンドラを非表示にするか登録するかを示すボリュームバーも表示されます。
音量を増減する以外の操作を行うために、音量変更のコールバックを登録することはできますか?
バックグラウンドでオーディオを再生するときに、ロック画面から音量コントロールバーを非表示にすることはできますか?
こんにちは、あなたが上に示した線をどこに置くのか正確に教えていただけますか?オーディオの再生が開始された後、私はこれらの回線に電話をしなければなりませんか?あなたの助けを借りて、私はロック画面コントロールを表示することができません。 – MikeG
私はバックグラウンド状態を扱うシングルトンを持っています。 'init()'ではAVAudioSessionを設定しました。ある時点で、シングルトン上でconfigure関数を呼び出して、コマンドとセットアップコールバック(上記の最初のセット)を有効にします。 'nowPlayingInfo'の初期値は、configure中にも設定されます(2行目の設定)。 'nowPlayingInfo'は必要に応じて定期的に更新することができます。私。音声セッションが設定され、音声再生が開始される前にコールバックが設定されます。 – sigrem
アプリがバックグラウンドに入ると、その時点で 'init()'が呼び出されますか?しかし、アプリケーションがアクティブな状態でオーディオを再生する前にAVAudioSessionをセットアップしていないのですか? – MikeG