2012-09-04 35 views
7

有沒有人設法讓NSUserNotification聲音名稱與自定義聲音一起工作? 我試着用aif和caf格式44100KHz 16位2秒的時間。通知顯示在正確的時間,正確的標題和文本,但默認聲音播放,而不是我的自定義聲音。NSUserNotification與自定義聲音名稱

聲音文件已正確複製到應用程序包中。 如果我試試這個聲音正常工作:

NSSound* sound = [NSSound soundNamed:@"morse.aif"]; 
[sound play]; 

但是,當我用同樣的聲音在我的通知,默認的通知聲音得到出場:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    // Insert code here to initialize your application 
    NSUserNotification* notification = [[NSUserNotification alloc]init]; 
    notification.title = @"Titolo"; 
    notification.deliveryDate = [NSDate dateWithTimeIntervalSinceNow:10]; 
    notification.soundName = @"morse.aif"; 
    [[NSUserNotificationCenter defaultUserNotificationCenter]scheduleNotification:notification]; 
} 

我試着用和不用的擴展,但沒有成功。

notification.soundName = @"morse.aif"; 
notification.soundName = @"morse2.caf"; 
notification.soundName = @"morse";  

沒有這些工作。

我的應用程序沒有簽名,也沒有沙箱,但我認爲這不是用戶通知所必需的,除了聲音問題以外,通知的工作效果很好。

+0

你知道了嗎?我有同樣的問題。在Apple Dev Forms中被問及被告知要提交一份錯誤報告,讓他們「看着它」。真的希望有一種方法可以解決這個問題,因爲我不能等待,並希望蘋果公司研究它...... – kdbdallas

+0

經常發生,這個問題在一段時間後自行整理。也許有某種緩存系統存在。 –

+1

2014年7月在這裏獲得同樣的東西。 – BergQuester

回答

8

在我看來,這個問題是區分大小寫的。使用notification.soundName = @"Morse";完美適合我。正如你可以在NSSound documentationsoundNamed對聲音的搜索文件夾看到的是,爲了:

~/Library/Sounds 
/Library/Sounds 
/Network/Library/Sounds 
/System/Library/Sounds 

如果在最後一個,這可能是在那裏你試圖從因爲他們是拉看聲音系統偏好設置,你可以看到他們的名字

Sound names

因此,保持文件的情況下,和省略的延伸和預期它應該工作。

0

如果您有多個版本的應用程序二進制通知中心可能正在爲您的聲音文件搜索錯誤的二進制文件。

如果您確定刪除該二進制文件的舊版本,應該修復該問題。

從蘋果開發論壇:https://devforums.apple.com/message/708511

,如果你有你的應用程序二進制文件的多個版本漂浮可能發生這種情況。通知中心只罰款其中一個。如果它是沒有聲音的那個,那麼它將不起作用。