2

からバイト配列を受け取ることができますSocket。このバイト配列からオーディオを再生する必要があります-オーディオはAMR8000Hzでエンコードされています。

でAMRオーディオを再生できることがわかりましたMediaPlayer。ただし、MediaPlayerバイト配列から音楽を再生することはできません。ファイルに書き込みたくありません。

Androidでバイト配列からAMRサウンドを再生する方法はありますか?

4

1 に答える 1

2

AudioTrackAndroid フレームワークでは、クラスを使用してメモリからオーディオ データを直接再生できます。欠点は、オーディオを既に PCM データにデコードする必要があることです。幸運にも Android 4.1 をターゲットにすることができた場合は、データを個別にデコードしてデータを渡すことができる新しい API がありますAudioTrack(MediaExtractorおよびを参照MediaCodec)。MediaRecorderただし、それ以前は、およびを超えてエンコード/デコードするための API は公開されていませんでしたMediaPlayer

4.1 より前のバージョンの Android をターゲットにしている場合 (おそらくそうであると思います)、次の 2 つのオプションがあります。

  • に渡すことができるように、AMR データのサードパーティのデコーダーを見つけます。AudioTrack
  • データを (一時的であっても) ファイルに保存して、MediaPlayer

HTH

于 2012-08-13T18:13:52.250 に答える