我在我的应用程序中使用了 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 的原因是它在播放多个声音时(如在游戏中)提供了最准确和响应最灵敏的结果。
如果可能,我宁愿不使用 OpenAL(即使通过Finch或CocosDenshion等第三方声音库)
有任何想法吗?