How to get iPhone OS 3.1 muffled keyboard sound?
我已将 iPhone 的 Tock 声音添加到我自己的自定义键盘中,如下所示:
|
1
2 3 4 5 6 |
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 中,键盘的 Tock 声音被抑制了,例如比其他声音和 3.0 中的声音要安静得多。我的方法的声音仍然很大并且处于最大音量。如何获得与 iPhone 的默认键盘相同的音量?
顺便说一句,Twitterrific 中的 Tock 声音被适当地消音了。
干杯
法师先生
- 你已经提供了一种关闭它的方法,对吧?我认识的大多数人都非常讨厌这种声音。
- 刚刚为它添加了赏金。我想为此提供一个完整的解决方案,感觉(例如声音)与真实的东西完全一样。
使用 0x450 作为 SystemSoundID 在正确的音量下为我工作 – 请注意,它不尊重键盘点击打开/关闭偏好。
我不确定它的便携性——它适用于我的模拟器和第三代 iPod Touch。我怀疑它适用于所有设备,但可能会在软件更新中更改,恕不另行通知。
我通过在 AudioServicesPlaySystemSound 上设置断点并按普通键盘键得到这个数字 – 第一条汇编指令将 SystemSoundID 复制到寄存器中,因此您可以在调试器的”寄存器”视图中看到它。
- 谢谢,这正是我想要的。
- 苹果会拒绝这个还是应用商店合法?
使用 AVAudioPlayer 而不是 AudioServices,您将可以访问允许您降低和提高声音音量的音量属性。
- 我必须将它设置为哪个音量来模仿 iPhone 的键盘 Tock?
- 音量属性是一个浮点数 – 介于 0.0 和 1.0 之间,尽管看起来超过 1.0 的值会产生更高的音量。您可能会注意到,键盘声音会随着您更改 iPhone 的音量而变化。我将从 0.5 开始,看看比较如何。
- 我使用 ProLevel (katsurashareware.com/pgs/prolevel.html) 来测量默认键盘的输出电平,结果在 0.45 到 0.5 之间
通过使用支持 UIInputViewAudioFeedback 的客户输入视图,您可以以正确的音量播放声音并尊重用户的按键声音设置。
这可能很愚蠢,但我在其他示例代码中看到还有一个 tick 声音文件。从我看到的例子来看,它是 ofType:@”caf”,所以也值得一试。对不起,如果我走远了。
来源:https://www.codenong.com/1513986/
