0

音の立ち上がりを非常に正確にコントロールしたいのですが、音を出す前に何かを待っているようです。プレーヤーには約 43 fps で動作する内部クロックがあり、サウンドはそのクロックのビートでのみ開始できるようです。
プロジェクトのフレームレートや実行するコンピューターに関係なく、常に 43 fps です (少なくとも私にとっては)。

これをテストするには、サウンドを開始し、各フレームで channel.position を予想される位置と比較します (例: getTimer() - startTime)。違いは常に(私にとって)23または46ミリ秒です。

私はここで質問を見つけました。これは、位置プロパティと、それが独自のレートで更新されることを示しています。私の場合、約 23 ミリ秒ごとに 43 fps です。

サウンドの再生開始を制御し、位置プロパティがいつ更新されるかを知る方法はありますか? また、誰かが Flash が実際に何をいつ行っているかを説明できれば、それは素晴らしいことです!

私は本当にすべての入力に感謝します、これはとても奇妙です.

編集: position プロパティには 23.219954648526077 の倍数しか含まれていないことに気付きました。チャネルを作成した後に直接尋ねると、設定した番号が含まれていますが、次のフレームではこれらの特定の番号のみです。誰かアイデアはありますか?

4

1 に答える 1

1

23.219954648526077ミリ秒の間隔は、バッファサイズとして1024サンプル、44100Hzのサンプルレートを使用して内部でフラッシュから発生します。

23.219954648526077 ms =(1024サンプル/ 44100サンプル/秒)*(1000 ms /秒)

サンプルの精度が必要な場合は、SampleDataEventを使用してサンプルを直接出力し、Sound.extractを使用してロードされたサウンドサンプルにアクセスしてみてください。複数のサウンドを相互に同期する場合は役立ちますが、オーディオをディスプレイフレームまたはビデオと同期する場合は役立ちません。

于 2010-09-27T17:37:26.547 に答える