サウンドを再生する必要があるエクササイズ アプリがあります。AVAudioPlayer を使用してサウンドを再生します。ただし、オーディオの再生が開始されると、別のアプリ (ラジオ ストリーミング アプリ) の BGM がシャットダウンされます。
バックグラウンドミュージックを中断しないようにするにはどうすればよいですか? 運動しながら音楽を聴いてもらいたいからです。
ありがとうございました。
AVAudioPlayer を使用する場合は、次のコードを使用できます。
// Set AudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:&sessionError];
デリゲートを設定する場合は、次のコード行を追加できます。
[[AVAudioSession sharedInstance] setDelegate:self];
私の場合、アプリで再生されるサウンドはアラートに似ているため、バックグラウンド オーディオをより低い音量で再生したいと考えました。私はこれを使用します:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// prevents our app from stopping other audio,
// e.g. music, podcats, etc. that may be playing when launched
// our audio will be played at a higher volume
// and the background audio will "duck" until done
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryMultiRoute
withOptions:AVAudioSessionCategoryOptionDuckOthers
error:nil];
}
ここでのSujithPtの回答に基づいて、迅速に同じことができます:
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient, error: nil)
Swift 2.2 の場合、プレイする前またはプレイの準備をする前に、これを任意の場所に追加します。
_ = try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)