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