如何编辑SystemSoundID对象卷?

时间:2015-01-09 20:03:31

标签: ios objective-c system-sounds

按下按钮时,我使用SystemSoundID创建声音,这样:

这是对象声明:

SystemSoundID soundEffect;

这是在viewDidLoad:

NSString *soundPath = [[NSBundle mainBundle]pathForResource:@"create_button_sound" ofType:@"mp3"];

NSURL *soundURL = [NSURL fileURLWithPath:soundPath];

AudioServicesCreateSystemSoundID(CFBridgingRetain(soundURL), &soundEffect);

最后按下按钮时:

AudioServicesPlaySystemSound(soundEffect);

控制效果声音的最佳方法是什么?我想确保如果有人将他的iphone音量设置为最大值,那么声音就不会大声疯狂..

感谢@@!

1 个答案:

答案 0 :(得分:1)

根据这个问题(AudioServicesPlaySystemSound Volume? - 稍微过时了,因为Sounds不再属于General),因为全局设置可以覆盖系统声音的音量,所以你会陷入困境。 / p>

解决方法是使用AVAudioPlayer代替,如果可能的话。

示例:

    NSString *soundPath = [[NSBundle mainBundle]pathForResource:@"create_button_sound" ofType:@"mp3"];

    NSURL *soundURL = [NSURL fileURLWithPath:soundPath];
    AVAudioPlayer *mySoundPlayer =[[AVAudioPlayer alloc] soundURL error:&error];
    mySoundPlayer .volume=0.8f; //between 0 and 1
    [mySoundPlayer prepareToPlay];
    mySoundPlayer.numberOfLoops=0; //or more if needed

    [mySoundPlayer play];