私は現在、バイト配列の形式で PCM オーディオを持っています。形式は符号付き 16 ビット リトルエンディアンです。これを Android で再生可能な形式、できればバージョン 3.2 以降に変換したいと思います。これを行う方法について誰か提案がありますか? 私はいくつかの調査を行い、以下を試しましたが、どれも成功しませんでした。誰かがより良い方法を提案したり、どこが間違っているかを示していただければ幸いです。
正しいオーディオ設定で AudioFormat を作成しようとしましたが、Android は javax.sound.sampled ライブラリをサポートしていません。
また、PCM データを wave ファイルに書き込もうとしましたが、必要なすべての wav ヘッダー情報を取得するのに問題が発生しています。
また、Android が提供する AudioTrack クラスを使用して、PCM データを再生しようとしました。しかし、どうやら音は聞こえないようです。これが私の方法です:
public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);
} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}
任意の提案をいただければ幸いです。