iOS 7中系统“嘀嗒”声音缺失

8
在iOS 6中,我使用了这行代码:
NSString *path  = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"];

获取系统打勾声音的路径。 以前一切都好。 现在自从iOS 7以来,返回的路径为(null)

有人能告诉我打勾声音发生了什么事吗?

我已经尝试重新链接UIKit.framework库,并得到了相同的结果。 我只是找不到这条线为什么改变了它的结果。

感谢您的帮助!


1
这可能是因为苹果将所有旧声音移动到“经典”部分了吗? - FreeNickname
可以的。但是你能详细说明一下吗?我如何访问这个“经典”部分及其声音? - Philipp Otto
7个回答

8
iOS所有可用系统声音列表:iOSSystemSoundsLibrary。您可以使用此小型演示应用程序测试所有声音。

1
谢谢您先生。正是我所需要的...这需要更多的投票!! - RyanG

8

在SDK的资源中进行快速研究,发现它已经不在那里了。

[dbarden@Daniels-MacBook-Pro-3/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs]
[16:24:03]% find . -name Tock.aiff
./iPhoneSimulator5.1.sdk/System/Library/Frameworks/UIKit.framework/Tock.aiff
./iPhoneSimulator6.0.sdk/System/Library/Frameworks/UIKit.framework/Tock.aiff
./iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/Tock.aiff

非常感谢!看来我得找一个新的声音。;-) - Philipp Otto
1
@Daniel Barden,在哪里可以找到iOS 7支持的系统声音列表? - Rushabh

3
这篇文章在谷歌上是关于这个主题的热门帖子,所以我将添加一个备选答案,这让我花费了太多时间才找到。
由于不再打算直接使用该文件,因此它不再包含在com.apple.UIKit包中。自iOS 4.2以来,播放此声音的预期方法是:
[[UIDevice currentDevice] playInputClick];

希望这可以避免其他人浪费时间寻找替代方案。

不幸的是,这只能从输入视图中使用,因此,如果您想将声音添加到自定义按钮,则需要进行一些黑客攻击(空输入视图)。 - Sulthan
这是正确的。它仅用于自定义输入视图(键盘),并且可以在设置中由用户启用/禁用。 - Holly

2

我在基于7.0 SDK的iPhone模拟器上尝试了类似的搜索:

find . -name *.aiff
./System/Library/CoreServices/SpringBoard.app/lock.aiff
./System/Library/CoreServices/SpringBoard.app/SIMToolkitCallDropped.aiff
./System/Library/CoreServices/SpringBoard.app/SIMToolkitGeneralBeep.aiff
./System/Library/CoreServices/SpringBoard.app/SIMToolkitNegativeACK.aiff
./System/Library/CoreServices/SpringBoard.app/SIMToolkitPositiveACK.aiff
./System/Library/CoreServices/SpringBoard.app/SIMToolkitSMS.aiff
./System/Library/CoreServices/SpringBoard.app/ussd.aiff
./System/Library/PrivateFrameworks/AOSNotification.framework/findme_alarm_2.aiff
./System/Library/PrivateFrameworks/AOSNotification.framework/findme_alarm_3.aiff
./System/Library/PrivateFrameworks/AOSNotification.framework/findme_alarm_4.aiff

1
那种声音不再包括在内了,我找不到其他解释。

0

-1

试试这个...

 NSString *path = [NSString stringWithFormat:
                   @"/System/Library/Audio/UISounds/%@.%@", @"Tock", @"caf"];

在我的设备上,它在iOS7上运行正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接