How to get iPhone OS 3.1 muffled keyboard sound?

你。 提交于 2020-01-01 05:03:05

问题


I have added the iPhone's Tock sound to my own custom keyboard like this:

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);

In iPhone OS 3.1, however, the keyboard Tock sound has been muffled, e.g. is much more silent than other sounds and than it was in 3.0. My method's sound is still very loud and at the maximum volume. How could I get the same volume as the iPhone's default keyboard?

By the way, the Tock sound in Twitterrific is muffled appropriately.

Cheers

MrMage


回答1:


Using 0x450 as the SystemSoundID works for me at the correct volume - note that it doesn't respect the keyboard clicks on/off preference.

I'm not sure how portable this is - it works for me on the simulator and on an iPod Touch 3rd gen. I suspect it works on all devices but could change without notice in a software update.

I got this number by setting a breakpoint on AudioServicesPlaySystemSound and pressing a normal keyboard key - the first assembly instruction copies the SystemSoundID into a register, so you can see it in the Registers view in the debugger.




回答2:


Use AVAudioPlayer instead of AudioServices and you will have access to a volume property that allows you to lower and raise the volume of the sound.




回答3:


This is probably stupid, but I've seen in other sample code that there is also a tick sound file. And from the examples I've seen, it's ofType:@"caf", so that's worth a try as well. Sorry if I'm way off.




回答4:


By using a customer input view that supports UIInputViewAudioFeedback, you can play the sound at the correct volume and honor the users key click sound settings.



来源:https://stackoverflow.com/questions/1513986/how-to-get-iphone-os-3-1-muffled-keyboard-sound

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!