問題タブ [audio-worklet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - オーディオ ワークレットを使用しているときに「クラッキング」するオーディオを修正するにはどうすればよいですか?
私はどのように機能しているかを理解しようとしAudioWorklet
ており、いくつかのテストを行いました。
これまでのところ、ブラウザにバックグラウンドでサウンドを再生させて別のことをさせると (たとえば、Photoshop や VSCode などの CPU 負荷の高いアプリケーションを開いてウィンドウを移動させるなど)、大きな「クラッキング」の問題が発生します。
最初はハードウェアの問題だと思いました。Catalina にアップグレードし、見つかったシステム オーディオ拡張機能をすべて削除しましたが、Android や他の友人のコンピューター (Mac、PC) でも同じです。
私はバージョン 1.0.1 Chromium: 78.0.3904.108 (公式ビルド) (64 ビット)を使用しています。
このYouTube ビデオは、クラッキング オーディオの問題を示しています。
ここでテストできる 2 つの CodePen デモを作成しました。
Web オーディオ クラック (バニラ + ワークレットなし) :
Web オーディオ クラック (バニラ + ワークレット) :
聞こえるピアノ MP3 は、スタジオで録音された 48000Hz / 32 ビット / 320kb のオーディオです。
バグを報告する前に、コードが正しいことを確認する必要があります。たぶん、私は物事を本来あるべき方法で連鎖させていません。
javascript - 特定のモジュールがワークレットに追加されているかどうかを確認するにはどうすればよいですか?
これAudioWorkletNode
を使用するには、最初にプロセッサ モジュールを にロードする必要がありますaudio_context.audioWorklet
。
私のコードはモジュール式であるため、プロセッサー・モジュールの不必要な複数のロードを防ぐための信頼できる方法が必要です。.addModule
与えられたAudioContext
. オブジェクトにマーキングしてマーキングする以外にそのような方法はありtry
ますか?catch
AudioContext
javascript - AudioWorklet はマイク入力を変更します
AudioWorklet
Chrome 拡張機能でを使用して、リアルタイムでマイク入力を変更したいと思います。
簡単な例として、この plnkrのように振動波を送信したいだけですoutput
。
最初にワークレットを作成します。
次に、マイクを接続します。
plnkr の例ではprocessor.js
、出力を変更する代わりに入力を変更し、15 行目を次のように設定します。
残念ながら、それはマイクを変更しません。マイクの音声を再生しただけでは、オシレーターが聞こえません