問題タブ [audiobuffer]

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 投票する
0 に答える
968 参照

ios - NSData を AudioBufferList から AVAudioPlayer にロードする

デリゲート メソッドから、オーディオの録音中に AudioBufferList を受け取ります。AVAudioPlayer にロードできるように AudioBufferList からデータを収集して保存しようとしていますが、AVAudioPlayer がエラーをスローし、録音を再生できません。AudioBufferList を使用するだけで、ファイルがなくても AVAudioPlayer でオーディオを再生できる必要があります。

もともと、録音をファイルに保存してから AVAudioPlayer にロードしていましたが、この方法では、別のオーディオ ファイルを作成せずに録音に追加できず、追加が行われた後に 2 つのファイルをマージすることができませんでした。これにはかなりの時間がかかっていたので、追加の合間に録音を聞くことができるようにしたいと思っています. そのため、保存するまでオーディオファイルを追加し続けることができるように、オーディオファイルを保存していません。これに関する問題は、AudioBufferList から保存している NSData が AVAudioPlayer に正しく読み込まれていないことです。

NSData を収集するためのコードは次のとおりです。

NSData を AVAudioPlayer に読み込もうとすると、次のエラーが発生します。

エラー: エラー ドメイン = NSOSStatusErrorDomain コード = 1954115647 「操作を完了できませんでした。(OSStatus エラー 1954115647。)」

どんな助けでも大歓迎です。

ありがとうございました、

0 投票する
4 に答える
2888 参照

ios - AVCaptureAudioDataOutputSampleBufferDelegate を使用して迅速にボリューム レベルをキャプチャする

AVCaptureDeviceなどを使用してボリュームレベルをライブにしようとしていますが、コンパイルして実行しますが、値はランダムに見え、オーバーフローエラーも発生し続けます。

編集:

また、RMS 範囲が 0 から約 20000 になるのは正常ですか?

...

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

javascript - Javascript: Int16 から Float32 への変換

WAV ファイルを AudioBuffer に入れて操作できるようにしようとしています。以前に AudioBuffer から WAV ファイルを作成したことがあり、それには Float32Array を Int16 値を含む DataView に変換する必要がありました。私が拾ったこの便利な機能を使用しました:

さて、あとはこれを逆にするだけです (WAV ファイルはサーバーから読み込まれるため、元のデータはもうありません)。その関数で実際に何が起こっているのか、データがどのように変換されているのかわかりません。

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

javascript - MediaElementAudioSourceNode を AudioBufferSourceNode に変換します

オーディオ データをデコードする場合、createMediaElementSource() はモバイル デバイスでは機能しませんが、createBufferSource() メソッドは正常に機能します。

このコードは Web ブラウザーでは正しく機能しますが、モバイル デバイスでは機能しません。

このコードは、Web ブラウザーとモバイル ブラウザーの両方で機能します。

私の場合、デコードするビデオ プレーヤーからのオーディオ ソースがあります。これは MediaElementAudioSourceNode であり、コードをモバイル デバイスで動作させるには、それを AudioBufferSourceNode に変換する必要があります。言い換えれば、それは可能ですか? sourceT1sourceT2に変換するには?

それを行う方法はありますか?

編集: この回答に基づいて、残念ながらそれは不可能だと思います

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

audio - クリップのピッチを変えずにオーディオファイルのテンポを変える

Webオーディオを訴えるオーディオコンテキストインスタンスを作成し、音楽ファイルをオーディオバッファとしてロードしました。今すぐ曲を再生できます。私の質問は、任意のノードでオーディオソース(オーディオバッファ)のテンポを設定できる方法はありますかそれに応じて再生しますか?

私は試してみました

上記の問題は、オーディオ ファイルのピッチを変更することです。ピッチを変更せずにテンポを変更するにはどうすればよいでしょうか。

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

objective-c - その UnsafeMutablePointer を変換する方法> 変数を AudioBufferList に入れますか?

マイクからオーディオをキャプチャするために、Swift プロジェクトにこの EZAudio メソッドがあります。

しかし、Objective C で行ったのと同じように、ソケットを介してこれらのオーディオ パケットを送信するために、「bufferList」パラメーターを AudioBufferList 型として入力する必要があります。

その UnsafeMutablePointer> 変数を AudioBufferList に変換するにはどうすればよいですか?

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

javascript - JavaScriptでAudioBufferを構築してWAVファイルを正しく再生するには?

VLCで再生されるこのWAVファイルを再生するのに苦労しています(これは、MonoIMA WAV APDCM Audio (ms)サンプリングされたファイルです24000Hz16 bits per sample

を介し て直接埋め込んで再生しようとすると、再生ボタンが非アクティブになっているため、WAV ファイル自体に問題があると思われ<audio>ます... を使用してプログラムで再生しようとするとnew Audio()、エラーが発生しますFailed to load because no supported source was found.

これは、いくつかのサウンドを生成するために私が試したものの最も簡単な例です...AudioContext.decodeAudioDataオーディオのロード時にすべてのチョークを使用しようとする他の試み、 Unable to decode audio data.

AudioBufferこの例では、ある程度認識できるサウンドが生成されますが、非常に引っかき傷があるため、明らかに何か間違ったことをFloat32Array[-1,1]ています。しかし、値の多くは のオーダーであるため、それらを正規化する方法がわかりません10e32

助けていただければ幸いです。ありがとう!

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

ios - iOS Core オーディオ: インターリーブされたオーディオで AudioBuffer からサンプルを取得する方法

関数でオーディオファイルを読み込んでいAudioBufferListますExtAudioFileRead
これは、オーディオの ASBD です。


AudioBufferListそのため、各チャネルの初期化に 16 ビットの符号付き整数を使用して、2 つのチャネルでオーディオを取得してインターリーブしました。

そしてバッファに読み込む:

audioFileObjectそのインスタンスは、ExtAudioFileRefスペースを節約するためにここに貼り付けなかったコードで以前に開始されました。
私が達成しようとしているのは、レンダリング コールバックでオーディオ サンプルを変更することです。

オーディオ データの UInt32 配列から Sint16 の左チャンネルと右チャンネルのサンプルを取得することは可能ですか?

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

ios - AudioUnitRender および ExtAudioFileWrite error -50 in Swift: MIDI をオーディオ ファイルに変換しようとしています

Swift で MIDI ファイルをオーディオ ファイル (.m4a) に変換しようとしています。

現在、MIDI ファイルをシーケンスおよび再生するためのツールとしてMIKMIDIを使用していますが、再生をファイルに保存する機能は含まれていません。MIKMID の作成者は、ここでこれを行うプロセスの概要を説明しています。出力をキャプチャしてオーディオ ファイルに保存するために、この例に従って、MIKMIDI グラフの RemoteIO ノードを Swift の GeneralIO ノードに置き換えてみました。AudioUnitRender と ExtAudioFileWrite を使用して出力をファイルに保存しようとすると、どちらもエラー -50 (kAudio_ParamError) を返します。

エラー -50 の原因と、それを解決して MIDI (オフライン) を .m4a ファイルにレンダリングするにはどうすればよいですか?

更新: mNumberChannels とチャンネルを = 1 に変更することで、ExtAudioFileWrite エラー -50 を解決しました。これで、ノイズのある 1 秒のオーディオ ファイルが得られます。AudioUnitRender は依然としてエラー -50 を返します。

0 投票する
4 に答える
9910 参照

blob - Blob から AudioBuffer を作成するには?

MediaRecorderAPIを使用して作成されたオーディオ ファイル/ブロブがあります。

その後、録音が終了したら:

このブロブを使用して を作成するにはどうすればよいAudioBufferですか? 次のいずれかが必要です。

  • オブジェクトBlobを(ArrayBufferAudioContext.decodeAudioData返すAudioBuffer) または
  • Blobオブジェクトを に変換します。ここで、 withFloat32ArrayにコピーできますAudioBufferAudioBuffer.copyToChannel()

それを達成する方法に関するヒントは大歓迎です。乾杯!