0

私は ipad ゲームを仕上げていますが、Finch はゲーム サウンドを処理するのに非常に優れているようです... 私の質問は、アプリケーション デリゲートですべてのフィンチ メカニズムをインスタンス化し、それを複数のゲーム画面から使用することは可能ですか? つまり、デリゲートでフィンチの音を準備し、ゲーム画面から起動するということですか?

4

2 に答える 2

1

私は Finch メカニズムに精通していませんが、一般的に言えることは、アプリケーション デリゲートはこれを行う場所ではないということです。「SoundEngine」シングルトン クラスを作成することをお勧めします (アプリケーション デリゲートでアプリケーションが起動すると、これをインスタンス化できます)。このサウンド エンジンを Finch フレームワークにフックし、サウンドを再生するための便利なパブリック メソッドを作成します。これはシングルトンであるため、安全に使用でき、アプリケーション全体からアクセスでき、非常に便利にアクセスできます。

幸運を!

于 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 に答える