問題タブ [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.
ios - NSData を AudioBufferList から AVAudioPlayer にロードする
デリゲート メソッドから、オーディオの録音中に AudioBufferList を受け取ります。AVAudioPlayer にロードできるように AudioBufferList からデータを収集して保存しようとしていますが、AVAudioPlayer がエラーをスローし、録音を再生できません。AudioBufferList を使用するだけで、ファイルがなくても AVAudioPlayer でオーディオを再生できる必要があります。
もともと、録音をファイルに保存してから AVAudioPlayer にロードしていましたが、この方法では、別のオーディオ ファイルを作成せずに録音に追加できず、追加が行われた後に 2 つのファイルをマージすることができませんでした。これにはかなりの時間がかかっていたので、追加の合間に録音を聞くことができるようにしたいと思っています. そのため、保存するまでオーディオファイルを追加し続けることができるように、オーディオファイルを保存していません。これに関する問題は、AudioBufferList から保存している NSData が AVAudioPlayer に正しく読み込まれていないことです。
NSData を収集するためのコードは次のとおりです。
NSData を AVAudioPlayer に読み込もうとすると、次のエラーが発生します。
エラー: エラー ドメイン = NSOSStatusErrorDomain コード = 1954115647 「操作を完了できませんでした。(OSStatus エラー 1954115647。)」
どんな助けでも大歓迎です。
ありがとうございました、
ios - AVCaptureAudioDataOutputSampleBufferDelegate を使用して迅速にボリューム レベルをキャプチャする
AVCaptureDeviceなどを使用してボリュームレベルをライブにしようとしていますが、コンパイルして実行しますが、値はランダムに見え、オーバーフローエラーも発生し続けます。
編集:
また、RMS 範囲が 0 から約 20000 になるのは正常ですか?
...
javascript - Javascript: Int16 から Float32 への変換
WAV ファイルを AudioBuffer に入れて操作できるようにしようとしています。以前に AudioBuffer から WAV ファイルを作成したことがあり、それには Float32Array を Int16 値を含む DataView に変換する必要がありました。私が拾ったこの便利な機能を使用しました:
さて、あとはこれを逆にするだけです (WAV ファイルはサーバーから読み込まれるため、元のデータはもうありません)。その関数で実際に何が起こっているのか、データがどのように変換されているのかわかりません。
javascript - MediaElementAudioSourceNode を AudioBufferSourceNode に変換します
オーディオ データをデコードする場合、createMediaElementSource() はモバイル デバイスでは機能しませんが、createBufferSource() メソッドは正常に機能します。
このコードは Web ブラウザーでは正しく機能しますが、モバイル デバイスでは機能しません。
このコードは、Web ブラウザーとモバイル ブラウザーの両方で機能します。
私の場合、デコードするビデオ プレーヤーからのオーディオ ソースがあります。これは MediaElementAudioSourceNode であり、コードをモバイル デバイスで動作させるには、それを AudioBufferSourceNode に変換する必要があります。言い換えれば、それは可能ですか? sourceT1をsourceT2に変換するには?
それを行う方法はありますか?
編集: この回答に基づいて、残念ながらそれは不可能だと思います
audio - クリップのピッチを変えずにオーディオファイルのテンポを変える
Webオーディオを訴えるオーディオコンテキストインスタンスを作成し、音楽ファイルをオーディオバッファとしてロードしました。今すぐ曲を再生できます。私の質問は、任意のノードでオーディオソース(オーディオバッファ)のテンポを設定できる方法はありますかそれに応じて再生しますか?
私は試してみました
上記の問題は、オーディオ ファイルのピッチを変更することです。ピッチを変更せずにテンポを変更するにはどうすればよいでしょうか。
objective-c - その UnsafeMutablePointer を変換する方法> 変数を AudioBufferList に入れますか?
マイクからオーディオをキャプチャするために、Swift プロジェクトにこの EZAudio メソッドがあります。
しかし、Objective C で行ったのと同じように、ソケットを介してこれらのオーディオ パケットを送信するために、「bufferList」パラメーターを AudioBufferList 型として入力する必要があります。
その UnsafeMutablePointer> 変数を AudioBufferList に変換するにはどうすればよいですか?
javascript - JavaScriptでAudioBufferを構築してWAVファイルを正しく再生するには?
VLCで再生されるこのWAVファイルを再生するのに苦労しています(これは、Mono
でIMA WAV APDCM Audio (ms)
サンプリングされたファイルです24000Hz
)16 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
。
助けていただければ幸いです。ありがとう!
ios - iOS Core オーディオ: インターリーブされたオーディオで AudioBuffer からサンプルを取得する方法
関数でオーディオファイルを読み込んでいAudioBufferList
ますExtAudioFileRead
。
これは、オーディオの ASBD です。
AudioBufferList
そのため、各チャネルの初期化に 16 ビットの符号付き整数を使用して、2 つのチャネルでオーディオを取得してインターリーブしました。
そしてバッファに読み込む:
audioFileObject
そのインスタンスは、ExtAudioFileRef
スペースを節約するためにここに貼り付けなかったコードで以前に開始されました。
私が達成しようとしているのは、レンダリング コールバックでオーディオ サンプルを変更することです。
オーディオ データの UInt32 配列から Sint16 の左チャンネルと右チャンネルのサンプルを取得することは可能ですか?
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 を返します。
blob - Blob から AudioBuffer を作成するには?
MediaRecorder
APIを使用して作成されたオーディオ ファイル/ブロブがあります。
その後、録音が終了したら:
このブロブを使用して を作成するにはどうすればよいAudioBuffer
ですか? 次のいずれかが必要です。
- オブジェクト
Blob
を(ArrayBuffer
をAudioContext.decodeAudioData
返すAudioBuffer
) または Blob
オブジェクトを に変換します。ここで、 withFloat32Array
にコピーできますAudioBuffer
AudioBuffer.copyToChannel()
それを達成する方法に関するヒントは大歓迎です。乾杯!