2017-02-15 20 views
0

私はAVAudioPlayerを使ってローカルmp3ファイルを再生し、MPMusicPlayerControllerを使ってシステム/ Appleミュージック/ iTunesミュージックを再生しています。 AVAudioPlayerを使用して曲を再生した後に設定されているカスタムnowPlayingMP3Itemを維持しています。AVAudioPlayerがMPMusicPlayerControllerによって中断されています

私はMusicControllerの再生状態を確認することができ、それは、システムの音楽をmp3から変更された場合、私はUIをリロードする必要があるだろう...

が(多分オーディオセッション)を観察する方法がありますmp3やシステムミュージックが再生されているかどうかを判断し、それに応じてUIを更新しますか?中断があった場合に任意のヘルプ

+1

「AVAudioSessionInterruptionNotification」通知を聞いてみましたか? –

+0

うん、ちょうどそれを試してみました。素晴らしい作品:)ありがとう – xCoder

答えて

0

ため

おかげで、オーディオが一時停止され、オーディオセッションが非アクティブ化されます。アプリに再生インターフェースが含まれている場合は、インターフェースを更新する必要があります。中断が終了すると、オーディオセッションをアクティブにして、オーディオの再生を再開できます。

NotificationCenter.default.addObserver(forName: .AVAudioSessionInterruption, object: nil, queue: nil) { n in 
    let why = AVAudioSessionInterruptionType(rawValue: n.userInfo![ AVAudioSessionInterruptionTypeKey] as! UInt)! 
    if why = = .began { 
     // began 
    } 
    else { 
     // ended 
    } 
} 
関連する問題