2010-10-27 81 views
6

我正處於開發我的第一個iPad應用程序的初期階段,爲了簡單起見,我至今一直使用AudioServicesPlaySystemSound和相關函數播放聲音。我的代碼基於Apple節拍器示例中的SoundEffect類。AudioServicesPlaySystemSound不適用於iPad設備

具體症狀是我可以在模擬器中聽到聲音,但聽不到設備上,儘管我已經驗證可以在設備上的其他應用程序中聽到聲音。 AudioServicesCreateSystemSoundID返回有效的聲音標識符,因此它不像聲音文件的名稱具有不同的大小寫,即「sound.mp3」與「Sound.mp3」一樣簡單。

我知道我可能需要切換到不同的庫,如OpenAL,因爲不相關的原因,但我想知道這裏發生了什麼。有沒有人有什麼建議?有沒有我可以調用的函數來獲得OSStatus值?

* BUMP - 我一直工作在其他項目上,在過去幾個星期,但現在我回到這一點,我會很感激的答案。謝謝。

回答

2

我不認爲你可以在設備上使用AudioServicesPlaySystemSound播放mp3文件。請查看documentation以瞭解支持的文件類型。我不確定他們爲什麼在模擬器中正常播放,但我遇到了同樣的問題。嘗試使用AVAudioPlayer來代替:

NSError *error; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error]; 
if (error) { 
    NSLog(@"Error creating audio player: %@", [error userInfo]); 
} else { 
    [audioPlayer play]; 
} 

[audioPlayer release]; 
5

我通過Google搜索發現了這個問題。我的問題與此問題的標題中所述的完全相同:「AudioServicesPlaySystemSound不適用於iPad設備」。但是,問題的描述是不同的。

簡單地說,將我的iPad升級到iOS 4.3後,AudioServicesPlaySystemSound停止工作。

我終於找到解決我的問題的版本,所以希望這可以幫助別人。

轉到iPad上的設置應用程序,然後選擇常規。點按聲音。確保「按鈕更改」設置爲ON。這將解決這個問題。

+0

我正在運行iOS 4.3.1,在General-> Sounds中沒有「Change with Buttons」選項。 – iPadDeveloper2011 2011-04-24 14:53:20

+0

這件事發生了一段時間,但我認爲它可能只適用於iPad 2.它們也可能改變了4.3.1中的行爲 - 此響應適用於4.3。 – 2011-04-24 20:58:43

+0

我用iTunes將我的.m4v聲音改爲.aif,這是一種「支持」編碼。這工作。 – iPadDeveloper2011 2011-04-25 05:44:42

相關問題