Как редактировать том объекта SystemSoundID?
Я использую 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 ответ
В соответствии с этим SO вопросом ( AudioServicesPlaySystemSound Volume? - немного устаревшим, поскольку Sounds больше не относится к General), вы застрянете из-за глобальной настройки, которая может переопределять громкость для системных звуков.
Обходной путь должен использовать 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];