0

マルチトラックプレーヤーを実現する必要があります。ユーザーは複数のトラックをアップロードしてミックス(一緒に再生)できます。私の問題は、ユーザーが各トラックの正確な開始位置を定義して、トラック間の同期を可能にすることです。たとえば、次のようになります。

トラック1:[x]秒から開始します。

トラック2:[y]秒から開始します。

再生/停止

ここで、ユーザーはxとyを設定できます。AS2(netstreamとsetIntervalを使用)とAS3(netstreamまたはサウンドとタイマーを使用)でそれを実現しようとしました。同じxとyを設定した場合にのみ、両方のトラックが同時に再生されます。

4

1 に答える 1

1

ある種の内部クロックを持つタイムライン「エンジン」があるとします。クロックの「ティック」ごとに、Track オブジェクトを保持する配列またはベクトルをチェックし、タイムラインの先頭から n ティックの startTime を持つオブジェクトが含まれているかどうかを確認します。または、TrackObjs Vector に存在する開始時間の Vector を作成して確認する方が効率的かもしれません。見つかった場合は、TrackObjs vector を実行し、その時点で開始する必要があるすべてのオーディオを取得します。

ここでのティックは、秒、10 分の 1、ミリ秒など、何でもかまいません。フレームベースの計時については、 http: //as3.casalib.org/docs/ org.casalib.time クラスを参照してください。

クラストラック() {
  var startTime:int;
  var trackName:文字列;
  var ファイル名:文字列;
}

複数のミックスされたサウンドを実際に再生するために、さまざまなライブラリがあり、ほとんどの面倒な作業を行うことができます。

http://www.gaiaflashframework.com/wiki/index.php?title=Sound_Groups
Gaia フレームワークから分離する必要があるかもしれませんが、これには便利なコードがあるかもしれません。もっと良いかもしれません:
Matt Przybylski の SoundManager クラスhttp://www.reintroducing.com
Guttershark SoundManager クラスhttp://codeendeavor.com/guttershark

また、これらは動的なサウンド生成にも役立つ可能性があります:
http://code.google.com/p/benstucki/
「Flaudio は、ActionScript 3 用の動的ランタイム オーディオ生成および処理ライブラリです」

http://code.google.com/p/popforge/
"Popforge AS3 オーディオ ライブラリを使用すると、独自のサンプルで有効な flash.media.Sound オブジェクトを作成できます。これにより、現在の Adob​​e Flash Player を使用したサウンド デザインの新しい展望が開かれます。 9. あらゆる種類のシンセサイザー、エフェクト、およびサンプル プレーヤーを作成できます。提供されている AudioBuffer クラスを使用すると、無限のオーディオ再生を作成できます。」

于 2009-12-10T01:41:04.590 に答える