問題タブ [avaudioconverter]

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 に答える
1205 参照

ios - AVAudioConverter.convertToBuffer がエラー コード -50 をスローする

2 オーディオ チャンネルで録音された .wav ファイルを 1 チャンネルのみの .wav ファイルに変換し、ビット深度を 32 から 16 に減らす必要がAVAudioConverter.convertToBufferあります。 :Error Domain=NSOSStatusErrorDomain Code=-50 "(null)"

基本的に、実際に変更する必要があるのは、オーディオを 1 つのチャネルとビット深度にストリップすることだけです。これらのファイルを別のツールから取得しているため、ファイルの記録方法を変更することはできません。

私はオーディオを扱うのが得意ではないので、少し困惑しています。私が取り組んでいるコードは以下のとおりです。不足しているものはありますか?

出力に関しては:

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

avfoundation - AVAudioConverter が iOS 10 で壊れている

AVAudioConverter は iOS 10 で壊れているようです。コードは iOS 9 で動作していましたが、現在は

エラー Domain=NSOSStatusErrorDomain Code=-50 "(null)"

使用されているオーディオ形式に関係なく返されます。毎年、基本的なライブラリ機能が機能しなくなることに驚かされます。

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

ios - iOS で pcm データを再サンプリングする方法

AudioConverterFillComplexBuffer を使用して pcm バッファのサンプルレートを変換したい(32k から 44.1k)。しかし、なぜ声が変わったように見えるのかわからなかった(ノイズが多すぎる)。主なコードは次のとおりです:</p>

// コールバックを変換

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

avaudiopcmbuffer - AVAudioConverter convertToBuffer:error:withInputFromBlock の使用方法:

AVAudioConverter を使用して、AVAudioPCMFormatFloat32 非インターリーブ 44.1 KHz バッファーを AVAudioPCMFormatInt16 インターリーブ 48 KHz に変換したいと思います。

着信 AVAudioPCMBuffer には 800 個のサンプルがあり、1920 個の容量で AVAudioPCMBuffer を返す必要があります。

オーディオがいくらかあるが十分でない場合、ブロックで提供されたオーディオは outputBuffer に変換されます。

より多くの入力オーディオが利用可能になったら、もう一度 convertToBuffer を呼び出し、同じ outputBuffer を再利用します。

問題は、変換されたオーディオを最後に追加する代わりに、コンバーターが既存のコンテンツを上書きすることです。

オーディオをオーバーライドするのではなく、最後にオーディオを追加する方法はありますか?

そうでない場合は、要求された数のサンプルが得られるのを待ってから、着信オーディオ バッファーを返す必要があります。

アドバイスをいただければ幸いです。

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

macos - AVAudioEngine を使用して一部のチャンネルの音量を変更する

VideoCard と外部オーディオ カードからのオーディオをミックスする Mac アプリケーションに取り組んでいます。

AVAudioEngine を使用して、各チャネル (各ソースではなく) の音量を個別に変更するにはどうすればよいですか。

16 チャンネルがインターリーブされた AVAudioPCMBuffer があり、チャンネル 1 と 2 の音量を 50%、その他を 100% にしたいとします。

16 チャンネルの 1 つの AVAudioPCMBuffer を 16 のモノラル AVAudioPCMBuffer に変換し、それぞれに 1 つの AVPlayerNode を用意する必要がありますか? 次に、各 AVPlayerNode の音量を変更しますか?

または、基になる Audio Unit を AVAudioMixerNode から変更する方法はありますか?

または、CoreAudio AudioUnits を直接使用する必要がありますか?