ボタン連打時の音

久しぶりの書き込み。

久しぶりの開発ネタ^^;

 

自分はいつも音声はAVAudioPlayerを利用してます。

———————————

AVAudioPlayer*    sounds;

[play sounds];

———————————

と言った感じですね。

 

ボタン連打時に毎回音を出そうとすると、

いくら再生音が短くても回らなくなります。

さらに再生チェックして

———————————

if ([sounds isPlaying]) {

[sounds stop];

[sounds setCurrentTime:0.0];

}

[sounds play];

———————————

とかやると、激遅くなります。

 

ってことで自分がやってる対策は超原始的。

まず同じ音を多数設定

——————————–

NSString* a_file_path = [[NSBundle mainBundle] pathForResource:@”oto” ofType:@”caf”];

NSURL*a_file_url = [NSURL fileURLWithPath:a_file_path];

if( a_file_url ){

sounds[0] = [[AVAudioPlayer alloc] initWithContentsOfURL:a_file_url error:nil];

sounds[1] = [[AVAudioPlayer alloc] initWithContentsOfURL:a_file_url error:nil];

sounds[2] = [[AVAudioPlayer alloc] initWithContentsOfURL:a_file_url error:nil];

}

——————————–

 

ボタン連打時の処理

——————————–

count++

if (count > 2) {

[sounds[(count-2)%3] stop];

[sounds[(count-2)%3] setCurrentTime:0];

}

[sounds[count%3] play];

——————————–

こんな感じで、2個前の音を処理しながら今の音を再生します。

 

ホントにこんな感じでしょぼーく開発やってますが、

どうにかなってます^^;

もっといい方法があればどなたかご教示ください!

 

 

 

 

  1. コメントはまだありません。

  1. 2013年 2月 20日
*


Advertisement