Как получить приглушенный звук клавиатуры iPhone OS 3.1? - PullRequest
7 голосов
/ 03 октября 2009

Я добавил звук Tock на своей собственной клавиатуре, например, так:

NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound(soundID);
// we don't dispose of the sound to keep the sound in the cache for the next time
//AudioServicesDisposeSystemSoundID(soundID);

В iPhone OS 3.1, однако, звук гудка клавиатуры был приглушен, например, гораздо тише, чем другие звуки и чем это было в 3.0. Звук моего метода все еще очень громкий и на максимальной громкости. Как я могу получить ту же громкость, что и клавиатура iPhone по умолчанию?

Кстати, звук Tock в Twitterrific соответствующим образом приглушен.

Приветствия

MrMage

Ответы [ 4 ]

5 голосов
/ 14 октября 2009

Использование 0x450 в качестве SystemSoundID работает для меня на правильной громкости - обратите внимание, что он не учитывает предпочтения включения / выключения щелчков клавиатуры.

Я не уверен, насколько это портативно - у меня это работает на симуляторе и на iPod Touch 3-го поколения. Я подозреваю, что это работает на всех устройствах, но может измениться без уведомления в обновлении программного обеспечения.

Я получил это число, установив точку останова на AudioServicesPlaySystemSound и нажав обычную клавишу клавиатуры - первая инструкция по сборке копирует SystemSoundID в регистр, так что вы можете увидеть его в представлении Registers в отладчике.

2 голосов
/ 05 октября 2009

Используйте AVAudioPlayer вместо AudioServices, и вы получите доступ к свойству громкости, которое позволяет уменьшать и увеличивать громкость звука.

1 голос
/ 02 августа 2011

Используя представление пользовательского ввода, которое поддерживает UIInputViewAudioFeedback, вы можете воспроизводить звук с правильной громкостью и соблюдать настройки звука нажатия клавиш пользователя.

1 голос
/ 14 октября 2009

Это, вероятно, глупо, но я видел в другом примере кода, что есть также tick звуковой файл. И из примеров, которые я видел, это ofType:@"caf", так что стоит попробовать. Извините, если я далеко.

...