サウンド レベルを取得したいので、サウンドを録音するときに SDL アプリケーション (プラットフォームは Linux) で表示できます。どうやってやるの?私は自分のアプリで FMOD API を使用していますが、記録には SoX を使用しています (フォークして exec() を使用してセットアップします - おそらくこれはもっとうまくいくかもしれませんが、方法がわかりません :( )。 SoX の関数、FMOD API、または /dev/dsp に直接アクセスしてサウンド データを取得しますか?
1040 次
2 に答える
1
いいえ、少なくとも「安全な」ALSA API を使用する必要があります。ただし、Gstreamer や PulseAudio などのより上位のものを使用することを検討する必要があります。
于 2010-10-10T16:50:06.757 に答える
1
必要に応じて、FMOD でレコーディングを行うこともできます。System::recordStart や System::getRecordDriverInfo などの FMOD API を使用できます。FMOD には、ソリューションの基礎として使用できる記録の例が付属しています。
具体的には、サウンド レベルを取得するために、実行時に行いたい場合は、Channel::getWaveData を使用できます。これにより、現在再生中のオーディオのスナップショットが得られます。このためには、録音データを再生する必要があります。
または、Sound::lock / Sound::unlock を使用して、再生されていない場合に録音サウンド データにアクセスすることもできます。
いずれかの方法でサウンド データにアクセスすると、値を読み取ってサウンド レベル/ピーク情報を取得できます。
于 2010-10-11T03:56:28.667 に答える