2016-10-14 15 views
0

私は基本的なゲームを作っています。私はヒット音を出そうとしています。リズムフィストマンの助けを借りて、さまざまなピッチで遊ぶようにしましたが、今私は新しい問題を抱えています。これは大きな問題のようには見えないかもしれませんが、私が開発しているゲームでは、指を動かすたびにヒット音を鳴らすことができるので、特にマルチタッチではかなり遅くなります。Swift 3:AVAudioPlayerNodeですばやくサウンドを再生します。

現在、私は一度に2つのhitsoundsを再生することができますので、私はAVAudioEngineで2チャンネル分の2つのノードを持っている、そしてそれは新しいサウンド再生することができますので、私はこれらのノードの1つを停止するには、これを使用しています:

if playerNode.isPlaying { 
    playerNode.stop() 
    playerNode.play() 
} 
playerNode.scheduleFile(file, at: nil, completionHandler: nil) 

この問題は、playerNode.stop()を実行した場合に偽を返すように見えるため、サウンドが実際に再生されているかどうかにかかわらず、isPlayingは常にtrueを返し、何らかの理由で非常に遅れている遅れを取って次々とヒット曲を演奏する。

ノードをリセットしてhitsoundを再生しないで簡単に解決できると思ったのですが、isPlayingは常にtrueを返すので、これを行うことはできません。オーディオノードがサウンドを再生するためのより速い方法はありますか?

+0

オーケー後に必要なものであるようだが、私は別の日にオープンこのポストを残しておきますケース私は何かhorrendously間違っている – MysteryPancake

答えて

0

はscheduleBufferが、私は、(驚くほど)が働いているようだ代わりに、オプションとして.interruptsでscheduleBufferを使用してみました、私はすべての

関連する問題