Shazam のような Android アプリを開発しようとしています。Google で Shazam の仕組みを検索したところ、これを読むことがわかりました。ご覧のとおり、最初に曲を録音します。しかし、Android Studio がそのコードの赤い下線でエラーを表示しているため、その記録コードに問題があります。
これが私のコードです:
private AudioFormat getFormat() {
float sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 1; //mono
boolean signed = true; //Indicates whether the data is signed or unsigned
boolean bigEndian = true; //Indicates whether the audio data is stored in big-endian or little-endian order
return new AudioFormat(sampleRate, sampleSizeInBits, channels, signed, bigEndian);
}
Is は、オーディオ録音のフォーマットに使用されます。そのコードをメイン アクティビティにコピーすると、次のようなエラーが表示されます。
エラーでカーソルを合わせると、「AudioFormat は android.media.AudioFormat で公開されていません。外部パッケージからアクセスできません」と表示されます。どうすれば修正できますか?私がフォローしているリンクのコードは間違っていますか? Shazamアプリのようなものを開発するために、Android用のチュートリアルコードを探しています。
Andrew Cheongの回答用に編集
Cheongの答えのおかげで理由がわかったので、このように使用します
private AudioFormat getFormat() {
float sampleRate = 44100;
int sampleSizeInBits = 16;
int channels = 1; //mono
boolean signed = true; //Indicates whether the data is signed or unsigned
boolean bigEndian = true; //Indicates whether the audio data is stored in big-endian or little-endian order
return new AudioFormat.Builder().setSampleRate(Math.round(sampleRate)).build();
}
しかし、コードでわかるように、サンプル レートを設定するための setSampleRate() しか見つかりません。sampleSizeInBits、channels、signed、bigEndian を設定する他の方法が見つかりません。それらを設定する方法がわかりません。残りの変数を設定するにはどうすればよいですか?