短い音を連続で鳴らしたい(続き)

MacBook Airを買った直後にマイナーバージョンアップですって。
今日も元気にメモを残していこうと思います。

で、今回のケースはこんな感じ。

連続して自機から発射されたミサイルが、
連続して敵機に当たった場合に音を再生する場合。

結構あるあるだと思うんだけど、
これも、その都度、currentTimeプロパティを0にしてたら、
やっぱり思ったと通りには再生されない。

今回の対処方法はこんな感じ。
同じ音を読み込んだAVAudioPlayerをいくつか用意して、
リングバッファを回す要領で、次々と再生する。
直前に鳴らしたAVAudioPlayerを止めるとかすると、
同時発音数が少ないハードを再現できて良いかも。

あと気になったのは、
pauseプロパティにYESを代入して、
currentTimeプロパティを0にして再生するのは、
負荷が高いのか、その瞬間もたつく。
正確には、ただ鳴らすだけでもフレームレートが揺らぐ。

ここは素直に、palyを呼んで、鳴らしきっちゃった方がいんですかね。。。

おしまい。

2 Responses to “短い音を連続で鳴らしたい(続き)”

  1. 前回のも見てるとなんかバファリング周りの挙動っぽいです?
    音とか全然触ったことないのでわかんねーですが

  2. なんか、低レイヤーのラッパーっぽいんですよね。(って、記述をどこかで見かけました)
    別にだから何って訳じゃないのですが、
    思った通りに鳴らしたければ、低レイヤーで実装する必要がありそうです。
    実装をイメージするに、止めて巻き戻して再生みたいなのは、
    例えば、次の再生用バッファに流し込んでる途中にって考えるとちょっとアレです。。。

Leave a Comment