Finch Audio Engine无法打开默认的OpenAL设备

时间:2011-02-25 02:36:24

标签: iphone audio initialization openal finch

我有一个抽象类,它将awch初始化为awakeFromNib方法中的全局变量Finch *引擎,如下所示:

engine = [[Finch alloc] init];

抽象类的子类都不会覆盖该方法。但是,每当我尝试我的程序时,Finch都会打印出“Finch:无法打开默认的OpenAL设备”。在调试器中。为什么Finch无法获得默认的OpenAL设备?据我所知,我正在做他们的代码示例中显示的所有内容。

2 个答案:

答案 0 :(得分:1)

我刚遇到同样的问题。对我来说,这是通过在多个视图控制器中实例化Finch对象引起的。由于某种原因,第二个似乎取消了第一个,每当我试图播放声音时,我都会收到错误消息。

要解决这个问题,我只需在App Delegate中创建一个Finch对象,现在它在整个应用程序中都能正常运行。

希望这会有所帮助:)

答案 1 :(得分:0)

警告,如果要分配多个Finch类:

在FISoundEngine中,dealloc方法调用closeAudioDevice。这将关闭OpenAL音频设备。 您可能知道,整个应用程序中只存在一个OpenAL设备!

因此,这意味着您的整个应用只能拥有一个引擎(和一个工厂), 或者您将在应该保持打开的地方关闭设备。

这是否是一个设计缺陷,我不知道。我建议将芬奇变成 单身一堂课,但我的想法被作者拒绝了。