0

我正在完成一个 ipad 游戏,Finch 处理游戏声音似乎真的很好......我的问题是:是否可以在 Application Delegate 中实例化所有 finch 机制并从多个游戏屏幕中使用它?我的意思是在代表中准备雀的声音并从游戏屏幕启动它们?

4

2 回答 2

1

我不熟悉 Finch 机制,但总的来说,我只能说应用程序委托不是执行此操作的地方。我建议你做的是创建一个“SoundEngine”单例类(一旦应用程序在应用程序委托中启动,你就可以实例化它)。将此声音引擎连接到 Finch 框架并创建公共便捷方法来播放声音 - 因为这是一个 Singleton,它使用安全,可从整个应用程序访问,并且访问非常方便。

祝你好运!

于 2012-07-20T13:02:10.837 回答
0

好的,我在项目中的一个独立工作区中安装了 Finch。开始实现单例,我在下面的代码中遇到了奇怪的错误

#import "FinchSoundManager.h"
#import "FISoundEngine.h"
#import "FIFactory.h"


@implementation FinchSoundManager
static FinchSoundManager *sharedInstance = nil;

@synthesize soundEngine,soundFactory;

- (id)init
{
self = [super init];

if (self) {
    soundFactory = [[FIFactory alloc] init];
    [soundFactory setLogger:FILoggerNSLog];

    [self setSoundEngine:[soundFactory buildSoundEngine]];
    [soundEngine activateAudioSessionWithCategory:AVAudioSessionCategoryPlayback];
    [soundEngine openAudioDevice];

}

return self;
}

1) AVAudioSessionCategoryPlayback 上的错误 -> 使用未识别的标识符 2) 在 finch 本身中:FISoundEngine: "Unknown Type Name AVAudioSession" #import "FILogger.h"

@interface FISoundEngine : NSObject

@property(copy) FILogger logger;
@property(readonly) BOOL isRunning;
@property(strong) AVAudioSession *audioSession;

- (BOOL) activateAudioSessionWithCategory: (NSString*) categoryName;
- (void) deactivateAudioSession;

- (BOOL) openAudioDevice;
- (void) closeAudioDevice;

@end

无法理解 FISoundEngine 上的错误在哪里,因为它只是导入到我的项目中......有什么线索吗?

于 2012-07-21T14:44:22.053 回答