5

NetConnection と NetStream を使用してオーディオをストリーミングしています。サウンド オブジェクトを使用してサンプル データをリアルタイムで変更できることはわかっていますが、NetStream オブジェクトでオーディオを再生するための SampleDataEvent が見つかりません。オーディオを NetStream オブジェクトから Sound オブジェクトに渡し、代わりにそのオブジェクトでサウンドを変更する方法はありますか?

編集: どんな種類のクレイジーなハックも喜んで行うので、どのような解決策でも構いません!

4

2 に答える 2

2

探している品質に応じて、低ビットレートのモノラル信号に犠牲にすることができます。それをストリーミングして、クライアント側で URLStream として取得し、そのデータをフィードすることができる場合があります。 URLStream を空の Sound オブジェクトの SampleDataEvent に、実行時に徐々に。

追加の作業は主にサーバー側で行われ、MP3 を浮動小数点数の Waveform ストリーム (単一チャネル [モノ] 信号のストリーム、または 2 つを組み合わせてモノラルにブレンドしたもの) に解凍し、それをサーバーにプッシュします。クライアント側のアプリケーション。

URLStream がロードされると、ダウンロードされたバイトをサウンドの SampleDataEvent で利用可能な ByteArray に追加します (十分な波形データをロードするためのバッファ「時間」も与えます)。URLStream からのモノサンプルの読み取りごとに、SampleDataEvent.data オブジェクトに同じ値を 2 回書き込む必要があります (左チャネルに 1 回、右チャネルに 1 回)。

とはいえ、WAV のようなサウンド ストリームをモノラルにダウングレードするだけでは、帯域幅を削減して幅広いターゲット ユーザーに届けるには不十分な場合があります。おそらく、AS3 用の OGG ライブラリ (存在するはずです) を見るのがより良い代替手段であり、部分的にダウンロードされたストリームのデコードを確実にサポートするはずです。

于 2011-02-14T15:50:18.077 に答える
2

サウンドのバイトコードにアクセスする必要があります。netstream を使用する場合は、ストリーミングされるデータに加えてNetStream.send()(NetConnection.call() 要求して) 渡すことによってのみ可能です。Soundそれ以外の場合は、またはの直接 URL のようなものが必要になりますURLStream

于 2011-02-09T18:08:30.643 に答える