0

私は read me ファイルの指示に正確に従いましたが、何らかの理由で、私のアプリでは、サウンドを再生するコードに対応する UIButton を押すたびに "[soundA play]; アプリは詳細なエラーの説明なしでクラッシュします。 Finch を使用しているのは、OpenAL を使用してオーディオを再生するためです. AVAudioPlayer またはシステム サウンドは、私が作成しているものには使用できないため、作成しているアプリの種類には OpenAL を使用する必要があります. コードは次のとおりです.私が使用していること。

メインファイル:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
soundFactory = [[FIFactory alloc] init];
engine = [soundFactory buildSoundEngine];
[engine activateAudioSessionWithCategory:AVAudioSessionCategoryPlayback];
[engine openAudioDevice];
soundA = [soundFactory loadSoundNamed:@"1.caf" maxPolyphony:16 error:NULL];
soundB = [soundFactory loadSoundNamed:@"2.caf" maxPolyphony:16 error:NULL];
soundC = [soundFactory loadSoundNamed:@"3.caf" maxPolyphony:16 error:NULL];
soundD = [soundFactory loadSoundNamed:@"4.caf" maxPolyphony:16 error:NULL];
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
    return YES;
}
}
- (IBAction) PlaySoundA {[soundA play];}
- (IBAction) PlaySoundB {[soundB play];}
- (IBAction) PlaySoundC {[soundC play];}
- (IBAction) PlaySoundD {[soundD play];}

@end

ヘッダー ファイル:

#import <UIKit/UIKit.h>
#import "FISoundEngine.h"
#import "FIFactory.h"
#import "FISound.h"

@interface ViewController : UIViewController {
FIFactory* soundFactory;
FISoundEngine* engine;
FISound* soundA;
FISound* soundB;
FISound* soundC;
FISound* soundD;
}

@end

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

0

ほとんどの場合、サウンド プレーヤーがサウンド ファイルを見つけられません。オーディオ ファイルを右クリックして、ファインダーで表示を選択してみてください。ファイルが実際にプロジェクトディレクトリにあり、そうでないことを確認してください

于 2012-08-14T03:24:21.463 に答える