2011-02-25 33 views
0

我有初始化雀到全局變量雀一個抽象類*發動機在awakeFromNib方法如下:雀音頻引擎不開放默認的OpenAL設備

發動機= [[雀的alloc] INIT];

沒有一個抽象類的子類重寫該方法。但是,每當我嘗試我的程序時,Finch都會打印出「Finch:無法打開默認的OpenAL設備」。在調試器中。爲什麼Finch不能獲得默認的OpenAL設備?據我所知,我正在做他們的代碼示例中顯示的一切。

回答

1

我剛剛遇到同樣的問題。對我而言,這是由於在多個視圖控制器中實例化一個Finch對象造成的。出於某種原因,第二個似乎取消了第一個,每當我嘗試播放聲音時,都會收到錯誤消息。

爲了解決這個問題,我簡單地在App Delegate中創建了一個Finch對象,現在它在整個應用程序中都能很好地工作。

希望這有助於:)

+0

當我嘗試它時,它有所幫助,除了現在我已經移動到ObjectAL以獲得更多功能。不幸的是,我有一個新問題,即我的音頻沒有播放。我目前正在查看他們的文檔以確定是否發佈新問題。 – MachCUBED 2011-05-04 18:14:22

0

警告,如果您分配多個芬奇類:

在FISoundEngine,dealloc方法調用closeAudioDevice。這會關閉OpenAL音頻設備。 正如你可能知道的,你的整個應用程序中只有一個OpenAL設備存在!

所以,這意味着您的整個應用程序只能有一個引擎(和一個工廠),或者您將在應該保持打開狀態的地方關閉設備。

無論這是否是設計缺陷,我都不知道。我建議Finch變成一個單身課程,但我的想法被作者拒絕。

相關問題