2009-10-09 60 views
2
sound = [[NSSound alloc] initWithContentsOfFile:@"staticbeam09.wav" byReference:YES]; 

代碼引用自Apple docs。當我把它放在viewDidLoad中時得到一個錯誤。如果我把NSSound在iPhone上未申報?

NSSound *sound; 

在頭文件中,我得到了說明符 - 限定符錯誤在我的實現文件的頂部。我需要做些什麼來完成這項工作?我只是從蘋果的文檔中粘貼代碼 - 是否已被棄用?謝謝你的幫助!

回答

0

http://icodeblog.com/2009/05/04/iphone-game-programming-tutorial-part-4-basic-game-audio/

這就是我所做的音頻BG音樂和聲音效果在年底iconquer

+0

嘿,試過了。我在第二行得到一個零字符串參數崩潰: \t NSString * beamPath = [[NSBundle mainBundle] pathForResource:@「staticbeam09」ofType:@「wav」]; 012UR\t CFURLRef beamURL =(CFURLRef)[NSURL fileURLWithPath:beamPath]; staticbeam09.wave位於我的資源文件夾中。試着把\資源\ staticbeam09,並沒有工作..任何想法是什麼參數,它認爲我通過爲零? – quantumpotato 2009-10-13 20:24:02

+0

我沒有我的代碼面前,但從一眼看來,它看起來像你使用的資源需要caf格式,iPhone不使用Windows音頻編解碼器。 Icodeblog包含一個用於轉換它的終端命令。嘗試一下,讓我知道 – 2009-10-13 21:05:28

+0

哦!我認爲.wav是一種通用的無損格式。它現在有效!感謝所有幫助過這個的人。現在我的遊戲裏有聲音了! – quantumpotato 2009-10-14 02:27:31

4

有一個在iPhone SDK 沒有NSSound類這只是適用於MacOS

3

Oxigen的權利。如果你想在iPhone上播放聲音,有幾種選擇。可能最簡單的是使用音頻服務(example wrapper),然後有AVAudioPlayer,然後你也可以使用OpenAL(我已經寫了一個非常基本的OpenAL音效引擎Finch)。取決於你需要做什麼。

+0

感謝您的答覆。 Zoul,我試着把你的代碼放在我的主要實現文件中,並在viewDidLoad中放入: \t Sound * abc = [[Sound alloc] initWithPath:[NSString stringWithFormat:@「staticbeam09.wav」]]; \t [abc play]; 它編譯得很好,但我在運行時遇到了未捕獲的異常。任何想法爲什麼?謝謝你們的幫助。 – quantumpotato 2009-10-09 16:14:39

+0

'stringWithFormat:'調用沒有必要,你可以直接使用'@「字符串」'。代碼並不完全是我使用的,我可能在那裏留下了一些bug。你會得到什麼例外? Xcode中的資源組中是否添加了聲音文件? – zoul 2009-10-09 17:16:31

+0

哦,我查看了視圖報告,它說加載聲音時出現錯誤。仔細檢查名稱和他們的罰款,雙擊資源在iTunes中播放它也是。 – quantumpotato 2009-10-11 03:44:41