2 種類のサウンドを持つアプリケーションがあります。 1. バックグラウンド サウンド。次のビューまで永遠にループします。2. 個別に、またはすべて一度に再生できるサウンド クリップ。
以前は AVAudioPlayer を使用してみましたが、2 つのクリップの間に常に非常に短い無音間隔がありました (解決策が見つかりませんでした。解決策がある場合は返信してください) 。 com/zoul/フィンチ/ツリー/マスター
ここで取り引きがあります。私は AVAudioPlayer を使用して永遠にループするサウンドを再生し、Finch を使用してそれらの連続したクリップを再生しています。私はこれをやっています:
- (void)viewDidLoad {
[super viewDidLoad];
soundEngine = [[Finch alloc] init];
/***
CLIPPED
***/
}
-(void) playclip:(id) sender {
NSString *fullPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"sitar.wav"];
NSLog(@"Song is %@", fullPath);
clip = [[Sound alloc] initWithFile:fullPath];
NSLog(@"Clip Length: %@", clip.length);
NSLog(@"Clip Playing ? : %d", clip.playing);
[clip play];
NSLog(@"Played Clip");
}
これは、git リポジトリで提供されているデモ プロジェクトとほぼ同じコードです。しかし、何らかの理由で、コンソールでこれを取得します:
Song is /Users/shoaibi/Library/Application Support/iPhone Simulator/User/Applications/17FBA26F-6047-4D56-9E45-ADAFE07B7234/Test.app/sitar.wav
Failed to create OpenAL source, error code a004.
Clip Length: (null)
Clip Playing ? : 0
Played Clip
コンソールに出力されたディレクトリの ls は、そこに適切な権限を持つ sitar.wav があることを明らかにします。問題は何ですか?私が使用をやめた背景音 AVAudioPlayer かもしれません:
- (void)viewWillAppear:(BOOL)animated {
//Stop the background music before my ears bleed :P
d = [[UIApplication sharedApplication] delegate];
if (d.bg.playing)
{
[d.bg stop];
NSLog(@"Background music stoped");
}
}
サウンドリソースを解放していませんか?