1

再生する前にスピーカーの入力に入る音波を処理する方法はありますか? さまざまな周波数のデシベル値を変更したいと考えています。ありがとうございました

4

2 に答える 2

1

適用するエフェクトの種類によって異なります。SoundPool.setRateを使用 して、単にピッチを変更できます。より複雑な効果を得たい場合は、AudioEffectの使用を検討してください。

さまざまな周波数のデシベル値を変更したいと考えています。

それがまさにイコライザー効果が行っていることです。Equalizer.getBandを使用して目的の周波数の帯域を取得し、そのレベルをEqualizer.setBandLevelで変更できます。

于 2012-10-26T11:58:06.177 に答える
0

デジタルからアナログへの変換の直前を意味する場合は、いいえ、アプリからそれを行うことはできません. できることは、AudioTrack インスタンスに書き込む前にオーディオを処理するか、Andrei が提案したように AudioEffect を使用することです。どちらの場合も、オーディオは DAC に到達する前に、プラットフォームのオーディオ DSP で追加のフィルター (マルチバンド圧縮、ピーク制限、使用される特定のスピーカー コンポーネントを補正するためのイコライゼーションなど) を通過する可能性があります。

周波数ドメインでオーディオ信号を変更したいように思えます。たとえば、 C インターフェイスと Java ラッパーを備えたFFTWを見てください。ネイティブ コードと Java の両方から使用できます。あなたが最も快適に感じるものに応じてコードを変更してください。自分で使ったことがないので、Android プロジェクトに統合する方法についての情報は提供できません。

于 2012-10-26T14:36:05.520 に答える