ユーザーの要望に応じて独自のサウンドを再生するiPhoneアプリを開発しています。
私の質問は、デバイスがすでに音楽を再生している場合、起動時にアプリ内のサウンドを無効にするにはどうすればよいですか?
デバイスがすでに音楽を再生しているかどうかを検出する必要があることはわかっていますが、どうすればそれを行うことができますか?
次のようにオーディオセッションをアクティブにすることができます。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
または、[MPMusicPlayerController iPodMusicPlayer]
インスタンスを作成して音楽を一時停止することもできますが、これによって他のアプリ内で再生されている音楽が一時停止することはありません。
編集
iPodが音楽を再生しているかどうかを確認したい場合は、次のようにすることができます。
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
if ([musicPlayer playbackState] == == MPMusicPlaybackStatePlaying)
//iPod is playing music, do something here
}
フレームワークを追加する必要がありますMediaPlayer
。
すでに音楽を再生しているかどうかを確認するには、次のようにします。
(YES == ((AVAudioSession *)[AVAudioSession sharedInstance]).otherAudioPlaying)