シンプルな効果音を再生するために、アプリで SystemSound を使用しました。これに加えて、MPMoviePlayerController を介してミュージックビデオを再生します。これで、音量を上げたり下げたりすると、ビデオの音楽が意図したとおりに応答します (音量を上げたり下げたりします)。
ただし、再生されるシステム サウンドは音量に反応しません。ユーザーがアプリの特定の領域をタップすると、システム音が鳴ります。そのための私のコードのスニペットを次に示します。
- (void)handleTap:(UITapGestureRecognizer *)recognizer {
SystemSoundID completeSound = nil;
//yellow folder in xcode doesnt need subdirectory param
//blue folder (true folder) will need to use subdirectory:@"dirname"
NSURL *sound_path = [[NSBundle mainBundle] URLForResource: target_sound_filename withExtension: @"wav"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)sound_path, &completeSound);
AudioServicesPlaySystemSound(completeSound);
}
PS。「設定->サウンド->着信音とアラート->ボタンで変更」がオンに設定されていることを再確認しました(他のSOの回答を読んで、このオプションをオフのままにするとsystemsoundがボリュームボタンに応答しなくなります)
さらに、systemsound を使用する理由は、(ゲームのように) 複数のサウンドを再生するときに最も正確で応答性の高い結果が得られるためです。
可能であれば OpenAL を使用しないことをお勧めします ( FinchやCocosDenshionなどのサードパーティのサウンド ライブラリを使用しても) 。
何か案は?