問題タブ [audiocontext]

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.

0 投票する
1 に答える
275 参照

javascript - AnalyserNode で FFT 解像度を上げる

AnalyserNode を使用すると、少し混乱する可能性があると思います。現在、userAudio ストリームの「ライン入力」を AnalyserNode に接続しています。次に、 を使用して Uint8Array を埋めgetByteFrequencyData()ます。

単一の 440Hz トーンを再生すると、アレイ内で最も強度の高い周波数は 468Hzまたは421Hz になります (どれだけ変化させるかによって異なります)。468 から 421Hz の間により多くの周波数を持つように、これらの周波数の周りの解像度を上げる方法はありますか?

440Hz トーンの fft データをプロットすると、468Hz と 421Hz に 2 つの強い周波数が見られます。468Hz と 421Hz のデータ ポイント (他のポイントの中でも) の強度が平均化されるように、FFT データを別の配列に平均化する方法はありますか? 周波数間のデータを補間するようなものだと思います...

JSFiddle: http://jsfiddle.net/puYw3/ (現在のコンピューターにはマイクがないため、これが実際に機能するかどうかはわかりません)。

0 投票する
0 に答える
238 参照

javascript - Chrome で OfflineAudioContext の FFT 分析がまだ壊れていますか?

OfflineAudioContext と FFT アナライザーをスクリプト プロセッサを使用して Chrome で使用しようとしましたが、この人と同じ問題に直面しています: OfflineAudioContext FFT analysis with chrome

その SO の回答で、誰かがこのバグ レポートを指摘しました: https://bugs.webkit.org/show_bug.cgi?id=113274しかし、それは 1 年以上前のものです!

私の質問は次のとおりです。これがすぐに修正されるかどうか、他の場所でバグを報告する必要があるかどうかを誰かが知っていますか? そのバグ レポート (1 年前のもの) はまだ検討中ですか? それとも、誰かが回避策を知っているのでしょうか? 私のコードは、本質的にその SO リンクの jsfiddle と同じです。

これが chrome では機能しないのに、Firefox では機能するのは本当に悲しいことです。

0 投票する
1 に答える
3155 参照

javascript - AudioContext からマイク データを取得する方法

それで、 javascript を使用してサウンドを録音できることがわかりました。それはただ素晴らしいです!

自分で何かをするために新しいプロジェクトを即座に作成しました。しかし、サンプルスクリプトのソースコードを開いた途端、説明のコメントがまったくないことに気付きました。

私はグーグルを開始 し、録音をまったく認識しないAudioContext に関する長くて興味深い記事(remixinf サウンドについてのみ言及している) と、すべての情報を含むMDN 記事を見つけました。

また、そのことを処理する既存のフレームワークについても認識しています (どういうわけか、おそらく)。でも、サウンド レコーダーが欲しければダウンロードします。

コーディング部分に慣れていないだけでなく、全体がどのように機能するのかにも興味があります-特定の時間に集中力が得られますか? オシロスコープのように?または、サンプルのスペクトル分析を取得できますか?

間違いを避けるために、上記のAPIを使用して入力データを取得し、最終的に説明コメント付きのコードを提供する最も簡単で簡単な方法を誰か説明してもらえますか?

0 投票する
1 に答える
993 参照

javascript - 録音中の音を再生しないようにする方法

私はフィードバックについて話しています.ユーザーからのストリームを開き、周波数分析(またはそれが何であれ)を読み取る単純なJavaScriptアプリケーションを作成すると、受信したすべてのデータがGoogle ChromeとOperaの両方でヘッドフォンに返されます. Firefox はほとんどの場合沈黙しており、ランダムに不安定なフィードバックで巨大な混乱を引き起こします。また、数秒後にストリームを閉じます。通常、Firefox ではまだ動作しません。

フィドルを作成しました。ブラウザがサポートしていない場合は、コンソールにエラーが表示されると思います。

コードの重要な部分は、ユーザーがマイク アクセスの要求を受け入れたときに呼び出される関数です。

ゼロゲインのアイデアは私のものではありません。単純なサウンドレコーダーのデモから盗みました。しかし、彼らにとってうまくいくことは、私にはうまくいきません。私のように、デモはFirefoxでも問題ありません。

0 投票する
2 に答える
24613 参照

javascript - javascript readAsArrayBuffer が空の配列バッファを返す

FileReader readAsArrayBuffer プロパティを使用してローカル ファイルを読み込もうとしています。読み取りが成功し、「onload」コールバックで、reader.result に Array Buffer オブジェクトが表示されます。しかし、Array Buffer は空です。長さは設定されますが、データは設定されません。このデータを取得するにはどうすればよいですか?

これが私のコードです

reader.result のコンソール出力

このデータを取得する方法を誰か教えてもらえますか? セキュリティ上の問題はありますか?エラーはありません。onerror は実行されません。

コメントから:バッファの内容にアクセスする方法を教えてください。私は実際にオーディオファイルを再生しようとしていますAudioContext...そのためにはバッファデータが必要です...

0 投票する
3 に答える
27815 参照

javascript - javascript/html5 経由で wav オーディオ バイト配列を再生するには?

次のメソッドを使用して、wav データを含むバイト配列を再生しています。関数は GWT プロジェクトから呼び出されています。

この関数は音を再生しますが、ある種の地獄のモンスターのように聞こえます。サンプル レートは間違いなく正しく (サウンドは neospeech によって生成されています)、numberOfSamples のあらゆる種類の値を試しましたが、これはオーディオ データの長さを表しているようです。

numberOfSamples の値が 30000 を超えると、オーディオ ファイルの全長が再生されますが、文字化けしてひどいものになります。

それで、私は何を間違っていますか?

0 投票する
0 に答える
528 参照

javascript - Icecast ストリームが AudioContext を介してロードされない

HTML5/JS でアイスキャスト ストリーム用のビジュアル プレーヤーを作成したいと考えています。これを機能させるには AudioContext を使用する必要があることは理解していますが、Chrome 以外で機能させるのに問題があり、その理由がわかりません。

  • クロムは正常に動作します
  • Firefox/Opera は何もしません
  • IE アラート Web オーディオ API はサポートされていません

実際の例については、以下のフィドルを参照してください。

http://jsfiddle.net/L37qq/4/

奇妙なことに、ローカルの mp3 ファイルを試してみると、Chrome/FF/(Opera?) ですべて正常に動作します。

ラインと関係があるのは確かなのですが…

0 投票する
1 に答える
271 参照

offline - OfflineAudioContext のみのレンダリングと onComplete の呼び出し

レンダリングされたバッファに基づいてビジュアライゼーションをレンダリングするオフライン コンテキストを作成し、startRendering() を呼び出して onComplete コールバックでレンダリングされたバッファを取得しました。接続されたオーディオ ノードの新しいセットを作成しようとしても、もう一度 startRendering() を呼び出しても何も起こりません。レンダリングごとにオフライン コンテキスト全体を再作成する必要がありますか?

0 投票する
1 に答える
1505 参照

node.js - NodeJs からの WebAudio API の使用

NodeJSでWebAudio(AudioContext)を使いたいです。ただし、NodeJS は WebAudio をサポートしていません。web-audio-api の npm がありますが、まだアルファ段階であり、不完全です。

では、NodeJS で WebAudio(AudioContext) を使用するにはどうすればよいですか。

NodeJS から Chrome ブラウザー環境をインスタンス化し、その機能を利用できますか? これは可能ですか?それを行う他の方法はありますか?

助けてください。

0 投票する
0 に答える
627 参照

ios - Cordova Phonegap inappbrowser でファイル API 機能が失われる

Web Audio Api を使用してアプリを開発しています。私は、Safari がオーディオを処理し、オーディオ コンテキストを正しくガベージ カレッジしない方法にメモリ リークがあることを発見しました。このため、新しいページをロードしたいと考えています。そのページでオーディオ コンテキストを作成し、操作を完了してからウィンドウを閉じて、メモリを解放します。

これを達成するために、次のことを行いました。

ref = window.open('record.html', '_self');これにより、 https: //wiki.apache.org/cordova/InAppBrowser に従って、Cordova WebView で record.html ページが開きます。

1 window.open('local-url.html');// Cordova WebView にロードします
2 window.open('local-url.html', '_self');
// Cordova WebView にロードします

record.html ページは、実行したい操作を実行する JavaScript ファイルをロードします。これは、ネイティブ操作へのいくつかの呼び出しを行う recordLoad.js ファイルです (ネイティブ API は、Cordova Webview にロードされている場合にのみ使用できます。ご覧のとおり、ファイル システムにアクセスする必要があるため、これが唯一の方法です。やれ。

// このファイルは非常に長いですが、2 つのオーディオ バッファのミキシングが完了すると、新しいファイルがファイル システムに書き込まれます。そして、その操作が完了したら、私は使用します

}

元の index.html ファイルに戻ります。これにより、メモリの問題が解決されます。ただし、同じ操作をもう一度実行しようとすると。つまり、record.html ファイルをロードし、recordLoad.js ファイルを実行すると、エラー ReferenceError: Can't find variable: LocalFileSystem が表示されます。

index.html をリロードすると、Cordova API へのリンクの一部が失われているように見えますが、すべてが失われているわけではありません。たとえば、Media API は使用できますが、File API は使用できません。これは、メモリ リークを解決するためのちょっとハックな方法 (ウィンドウの開閉) であることは理解していますが、それ以外の方法は見つかりません。これには本当に助けが必要です。ですから、どんな指針も大歓迎です。