1

約 2000 個の短い mp3 ファイルを含むプログラムがあります。これらすべてのファイルをフォルダーに保存していますSupporting Files。再生したいときは、この関数を呼び出します。

-(void)playSound:(NSString *)mySoundFileName{
    NSString *filePath = [[NSBundle mainBundle] pathForResource:mySoundFileName ofType:@"mp3"];  
    if ([NSData dataWithContentsOfFile:filePath]) {  
        url = [NSURL fileURLWithPath:filePath];
        audioPlayer = [[AVAudioPlayer alloc]
                           initWithContentsOfURL:url
                           error:nil];
        [audioPlayer play];  
    } 
}

ただし、初めてサウンドを再生するときは、ファイルの検索/読み込みに常に時間がかかります。より具体的には、「サウンドを再生」ボタンを押してサウンドを再生した後、再生されるまで少なくとも5秒待たなければなりません。その後、別の音を鳴らしてもOKです。つまり、「音を鳴らす」ボタンを押すとすぐに鳴ります。これらの多くのファイルをより効率的に保存および再生するための提案はありますか? どうもありがとうございました

4

1 に答える 1

3

AVAudioPlayer が最初に再生を開始するまでに、望ましくない時間がかかる場合があります。これを解決する良い方法は、play を呼び出す前に初期の alloc/init を作成することです。このようにして、ユーザーが再生ボタンを押す前に、プレーヤーは再生する準備ができています。さらに、再生前に呼び出すと、[player prepareToPlay];パフォーマンスがわずかに向上します。

于 2012-09-08T04:38:21.080 に答える