2

私のアプリでは、自分のサウンドを再生している間、バックグラウンド ミュージックを一時停止して再開する必要があります。

iPod のアプローチは、以下を使用することです。

[[MPMusicPlayerController iPodMusicPlayer] pause];

と :

[[MPMusicPlayerController iPodMusicPlayer] play];

iPod 以外のアプリの場合、これは影響しません。

2 番目の試みは、ダッキングを有効にすることです。

    UInt32 property = sender.on;
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(property),&property);
    AudioSessionSetActive(property);

Spotify ではなく、iPod 音楽プレーヤーでも機能します。

設定kAudioSessionCategory_SoloAmbientSoundはすべての音楽を停止しますが、再開しません。

4

2 に答える 2

3

これを制御する方法は、AVAudioSessionsetActiveメソッドを使用することです。

サウンドを再生する場合は、セッションをアクティブに設定します。

[[AVAudioSession sharedInstance] setActive:YES error:nil];

プレイを停止したら、セッションを非アクティブに設定しますが、フラグを付けて他の人にも通知します。このフラグにより​​、他のアプリが再起動されます (iPod などで機能するはずです)。AVAudioSession を使用する iOS6+ の場合、次のようにできます。

[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersonDeactivation error:nil];

iOS 6 以前:

 [[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
于 2013-05-31T07:50:05.400 に答える
0

あなたも必要ありません。iOS では、一度に 1 つのアプリケーションのみがオーディオを再生できます。アプリには音楽再生の優先順位があるため、音楽を再生できるように音楽プレーヤーを自動的に一時停止します。自分のゲームをプレイするだけで、iOS に任せてください。

于 2013-01-05T15:38:59.310 に答える