2012-08-02 142 views
10

如何訪問默認iOS聲音(三音,鐘聲,玻璃,喇叭,貝爾,電子...)以將其設置爲本地通知聲音?如何訪問默認iOS聲音以將其設置爲通知聲音?

我創建了本地通知,一切正常,但默認聲音(這是三音)。我想用門鈴或其他

我只知道如何使用我自己的聲音文件:

localNotif.soundName = @"sound.wav"; 
+0

你是如何訪問「三音」聲音的?我無法找到正確的聲音ID。日Thnx! – DZenBot 2013-04-05 13:30:03

回答

12

退房this網站。

如果您想播放默認系統聲音。請參考以下代碼,但使用私人框架。你將被拒絕。

AudioServicesPlaySystemSound(1004); 

並檢出其他this示例代碼(沒有私人框架,支持Apple)。

2

音頻服務不是私人的。這些方法記錄在開發人員參考指南中,並在Multimedia Programming guide中引用。

如果找出要播放的聲音的參考ID,您只需要做。

3

不幸的是系統聲音不適用於您的應用程序。從the docs

注:系統提供的警報聲音和系統提供的用戶界面 聲音效果不提供給您的iOS應用程序。例如, 使用kSystemSoundID_UserPreferredAlert常量作爲 的參數,AudioServicesPlayAlertSound函數不會播放任何內容。

更新

雖然蘋果沒有說你不能訪問系統聲音,我想他們一定意味着你不能訪問它們自己的目的,但我看到UILocalNotification.h提供:

UIKIT_EXTERN NSString *const UILocalNotificationDefaultSoundName; 

「標識顯示通知警報時播放的默認系統聲音。將此值分配給soundName屬性。」我現在在我的應用程序中使用它,它似乎工作正常。

+0

本,你的應用程序已經過認證並在App Store上居住? – 2014-04-21 18:47:27

+0

@KennyLim是的,但讓我仔細檢查,以確保此代碼在那裏。 95%確定。 – 2014-04-21 21:02:07

+0

上面引用的系統說明僅表示定義訪問系統聲音的常量在iOS上不可用。這並不意味着實際的聲音在iOS上不可用。 MacOS具有聲音設置(以前稱爲控制面板),可讓您設置警報聲等。這些是常量所指的。 – chadbag 2016-10-21 02:13:09