配列にサウンドのセットがあり、START ボタンをクリックするとランダムに再生されます。今、左右のスピーカーで音を交互に再生する方法を考えています。たとえば。最初のサウンドがヘッドフォンの左側のスピーカーで再生される場合、2 番目のサウンドは右側のスピーカーで再生される必要があります。することは可能ですか?
1 に答える
これを行うには、SoundTransform クラスを使用できます。例については、このヘルプ記事をご覧ください。
リンクが切れた場合の抜粋を次に示します。
個々の SoundChannel オブジェクトは、サウンドの左右両方のステレオ チャネルを制御します。mp3 サウンドがモノラル サウンドの場合、SoundChannel オブジェクトの左右のステレオ チャンネルには同一の波形が含まれます。
再生中のサウンドの各ステレオ チャネルの振幅は、SoundChannel オブジェクトの leftPeak プロパティと rightPeak プロパティを使用して調べることができます。これらのプロパティは、音波自体のピーク振幅を示します。実際の再生音量を表すものではありません。実際の再生音量は、音波の振幅と、SoundChannel オブジェクトおよび SoundMixer クラスで設定された音量値の関数です。
SoundChannel オブジェクトの pan プロパティを使用して、再生中に左右のチャンネルごとに異なる音量レベルを指定できます。pan プロパティには -1 から 1 の範囲の値を指定できます。ここで、-1 は左チャンネルが最大音量で再生され、右チャンネルは無音であることを意味し、1 は右チャンネルが最大音量で再生され、左チャンネルが無音であることを意味します。-1 と 1 の間の数値は、左右のチャンネル値の比例値を設定し、値 0 は、両方のチャンネルがバランスのとれた中間の音量レベルで再生されることを意味します。
次のコード例では、ボリューム値が 0.6 でパン値が -1 の SoundTransform オブジェクトを作成します (左上チャンネルのボリュームがあり、右チャンネルのボリュームはありません)。これは、SoundTransform オブジェクトをパラメーターとして play() メソッドに渡します。このメソッドは、その SoundTransform オブジェクトを、再生を制御するために作成された新しい SoundChannel オブジェクトに適用します。
var snd:Sound = new Sound(new URLRequest("bigSound.mp3"));
var trans:SoundTransform = new SoundTransform(0.6, -1);
var channel:SoundChannel = snd.play(0, 1, trans);
SoundTransform オブジェクトのパンまたはボリューム プロパティを設定し、そのオブジェクトを SoundChannel オブジェクトの soundTransform プロパティとして適用することにより、サウンドの再生中にボリュームとパンを変更できます。
それに追加する必要があるのは、どちら側が音量を持たないかを示すブール値フラグであり、サウンド変換を適切に変更するだけです。