1

ActionScript 3 でオーディオをデコードして再生する方法に興味があります。SAMPLE_DATA イベントを使用してサウンド オブジェクトにバイトを書き込む方法を理解しているので、実際には問題ありません。私が理解したいのは、Flash Player 内でのネイティブ再生用に代替オーディオ形式を実装する方法です。

私が求めているのは、X 形式で何かを取得し、それを WAV 形式に「変換/デコード」して、そのバイトを Sound オブジェクトに書き込み、オーディオを再生するにはどうすればよいかということだと思います。FLAC オーディオと、おそらく OGG オーディオ用のデコーダを作成することに興味があります。これらは、最も広く使用されているオープン ソース オーディオ フォーマットの 1 つであるように思われるからです。

誰でもこれについて何かアドバイスをもらえますか?

4

2 に答える 2

2

デコーダーを作成したい場合、おそらく最初に確認する必要があるのは、デコードしたい形式の仕様です。

ogg/vorbis の仕様はhttp://xiph.org/vorbis/doc/Vorbis_I_spec.htmlにあります。

また、これをすでに実行している他のオープンソース ライブラリ ( Actionscriptで書かれたものは知りません) を参照 (または移植) することも役立つ可能性があります。.jcraft.com/jorbis/ (私はこのライブラリを知りません。「ogg vorbis オープン ソース」をグーグルで検索したところです。

いずれにせよ、それを機能させるには多少の作業が必要です。だからと言って落胆させるつもりはありませんが、Actionscript がリアルタイムのオーディオ デコーディングに十分な速さであるかどうかはわかりません。

于 2010-07-03T01:14:33.933 に答える
1

試してみることはできますが、他のことをするためのうなり声があまり残っていません。Flash 10 より前に、 PCM データを Flash のサウンド出力にフィードするためのハックについて詳しく説明した記事を書きました。誰かが AS3 Ogg デコーダーを作成したという理由で連絡を取りましたが... コードを完全に最適化した後でも、AVM2 は実際にはそれほど機能していないことがわかりました。基本的に、これはかなり遅く、OGG のデコードはプロセッサにかなり負担がかかります。CPUが「より広く」なり、実際にはそれほど高速ではないため、その後数年で物事がそれほど変わるとは思えません。ActionScript はシングル スレッドであるため、別のコアにオフロードすることはできません。

おそらくこれをチェックする価値があります...パフォーマンスが向上したのかもしれません。

編集:フアンが言ったように、この答えに落胆しないでください。FLAC デコードの計算要求はおそらく OGG よりもかなり少ないと思います.DSP に興奮するなら、Flash ルートが (おそらく) 失望につながるとしても、時間をかけてこれらすべてを理解することは 100% の価値があります. 個人的には、Silverlight のMediaStreamSourceは非常に有望に見えると思いますが、実際にはあまり手を出していません。

于 2010-07-03T01:13:55.250 に答える