問題
私は、ユーザーがオーディオサンプルをシーケンスし、オプションでWebAudioAPIを使用して作成した音楽パターンにエフェクトを適用できるWebアプリケーションに取り組んでいます。パターンはJSONデータとして保存されているので、サーバー側の各パターンのレンダリングされたオーディオを分析したいと思います。私が見る限り、これには2つの選択肢があります。
サーバー側で独自のレンダリングコードを実行し、ブラウザ内のレンダリングにできるだけ忠実にしようとします。ChromiumプロジェクトからWebAudioコードを取り出して変更することもできるかもしれませんが、これは潜在的に多くの作業のようです。
クライアント側でレンダリングを実行し、できればリアルタイムよりも高速にしてから、レンダリングされたオーディオをサーバーに送信します。パターンレンダリングに使用されるエンジンは1つしかないため、これは理想的(およびDRY)です。
考えられる解決策
この質問から、Chromiumリポジトリのこのコードサンプルにたどり着きました。これは、オフライン処理が可能であることを示しているようです。トリックはwebkitAudioContext
、いくつかの引数を使用してaを作成することのようです(通常、引数なしのコンストラクターが使用されます)。以下は、パラメータの意味についての私の推測です。
new webkitAudioContext(2, // channels
10 * 44100, // length in samples
44100); // sample rate
サンプルを少し調整し、Windows、Mac、LinuxのChrome23.0.1271.91でテストしました。 ライブの例と結果は次のとおりです(Dev Tools Javascript Consoleを開いて、何が起こっているかを確認してください)。
- Mac-動作します!!
- Windows- FAIL -SYNTAX_ERR:DOM例外12
- Linux- FAIL -SYNTAX_ERR:DOM例外12
上で説明したwebkitAudioContext
コンストラクターは、WindowsとLinuxで例外を引き起こします。
私の質問
オフラインレンダリングは私がやろうとしていることに最適ですが、どこにもドキュメントが見つからず、サポートは理想的とは言えません。誰かがこれについてもっと情報を持っていますか?WindowsやLinuxでこれがすぐにサポートされることを期待する必要がありますか、それともMacでサポートがすぐになくなることを期待する必要がありますか?