私は2種類のサウンドを持つアプリケーションを持っています: 1.バックグラウンドの音が、次のビューまで永遠にループします。 2.別々に再生することも、一度に再生することもできます。フィンチを使ってiphoneで音を再生する
私はAVAudioPlayerを使用しようとしましたが、2つのクリップの間に非常に小さな沈黙の間隔がありました(これは、解決策が見つからなかった場合は返信してください)。 http://github.com/zoul/Finch/tree/master
ここには取引があります: 私は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が正しい権限でそこにあることが明らかになりました。何が問題なの?
- (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");
}
}
サウンドリソースを解放していないバックグラウンドサウンドAVAudioPlayerですか?
AVAudioPlayerは問題ではないはずですが、FinchはAVAudioPlayerをうまく処理する必要があります。 Simulatorでコードを実行していますか? (ファイルパスはそう示唆しています。)シミュレータ上のOpenALに問題がありますので、デバイスを試してみる必要があります。 – zoul
同じコードがデバイス上で失敗します。そのポストを書いているうちに、私はシミュレータを使用します。さらに、デモアプリケーションは問題なくシミュレータで動作します。 – Shoaibi