2012-06-01 3 views
17

У меня есть этот код:AudioServicesPlaySystemSound Volume?

-(void)createAndPlaySoundID: (NSString*)name 
{ 
    NSString *path = [NSString stringWithFormat: @"%@/%@", [[NSBundle mainBundle] resourcePath], name]; 

    NSURL* filePath = [NSURL fileURLWithPath: path isDirectory: NO]; 
    SystemSoundID soundID; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID); 

    AudioServicesPlaySystemSound(soundID); 
} 

Я называю это так:

[self createAndPlaySoundID: @"mySound.caf"]; 

Это прекрасно работает, но я не имею никакого контроля над объемом. Я просто хочу, чтобы том контролировался пользователем, используя стандартные кнопки физического уровня на своем iPad.

Если я поставил этот том вниз, чтобы сказать 1, он играет, отлично, но тогда, если я удалю громкость устройства до максимальной его же громкости.

Любая помощь будет оценена, учитывая это, спасибо.

+0

Вы пробовали использовать другой длинный звук, чтобы вы могли проверить изменение громкости во время игры? Документация Apple гласит: «Звуки воспроизводятся на текущем громкости системы, без использования программного регулятора громкости» для AudioServicesPlaySystemSound, поэтому странно, если он не делает то, что Apple говорит, что нужно. – Christian

+0

Вы нашли решение? У меня такая же проблема. Обновление – tommys

+1

: я узнал, что громкость была изменена при использовании кнопок регулировки громкости - моя проблема была в том, что звук был слишком усилен сам по себе, поэтому уменьшение громкости просто не сильно повлияло на громкость. Я решил это, отрегулировав собственные звуки в смелости. – tommys

ответ

28

У меня также была похожа проблема на эту тему.

Моя проблема была в том, что была глобальная обстановка, о которой я не знал.

В настройках приложения под

Общие> Звуки> Ringer и оповещения

Если «Изменение с кнопками» установлен в Off, то звуки с помощью AudioServicesPlaySystemSound() будет всегда воспроизводиться в полном объеме (однако другие звуковые API, такие как AVAudioPlayer, будут уважать объем устройства).

+0

Спасибо, В этом случае я обнаружил, что Sounds using AudioServicesPlaySystemSound() будет воспроизводиться при воспроизведении тома в отключенном слайдере (не полный том). – DareDevil

+0

работать для меня! Спасибо – slboat