2011-05-19 97 views
0

我確信有一種方法可以做到這一點,但我不知道如何在Cocos2d中發聲。我正在按照Ray Wenderlich的精彩教程(第1部分)中的說明使用SimpleAudioEngine.h。問題是,播放聲音時會有延遲。我知道有一種方法可以擺脫延遲,因爲只需查看所有已經用於iPhone的遊戲!請注意,我在模擬器上執行此操作,而不是在真實設備上執行此操作,如果這有所幫助。任何幫助表示讚賞。謝謝!!爲什麼在Cocos2d中播放聲音時會有延遲?

+0

是的,這確實有所作爲。如果您未在設備上進行測試,您如何知道設備上會出現相同的效果?這適用於任何事情,圖形故障,性能和不適用。如果遇到任何有關模擬器的技術問題,您必須習慣做的第一件事是驗證設備上是否存在問題。 – LearnCocos2D 2011-05-20 00:46:20

回答

4

您是否試過preloadEffect?在調用playEffect之前,在初始化時預加載音頻效果。

[[SimpleAudioEngine sharedEngine] preloadEffect:@"pew-pew-lei.caf"]; 
+0

試過了,它甚至不會播放聲音。 – ipodfreak0313 2011-05-20 18:54:34

+0

你什麼時候打電話預加載?它應該在您的應用程序init代碼中,並且只需要爲每個音效調用一次。 – 2011-05-21 00:34:25

+0

對於閱讀此內容的任何人,您需要預加載,然後播放。簡單地預加載聲音不會播放它。 – Moshe 2011-07-18 18:41:15

0

此修復程序可能不起作用。如果聲音引擎沒有正確初始化,它將永遠無法正確預載。

聲音口吃的另一種可能性:您的代碼可能會同時請求多個資源文件,並且如果您不是多線程,它可能會影響聲音效果。

要測試這個:聲音效果播放時註釋掉你的代碼。如果聲音效果不會將代碼註釋掉,那意味着您的代碼「保持設備或線程繁忙」。

我在播放爆炸動畫時發現了這個問題。當我將動畫代碼評論出來時,音效並沒有影響玩遊戲。