关于objective C:如何获得 iPhone OS 3.1 的键盘声音低沉? | 珊瑚贝

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/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?