从android中的音轨播放音频

时间:2010-02-15 11:15:21

标签: android audio

我想通过在线mp3链接播放音乐。

我正在将音乐数据读入流中并尝试使用音轨播放。

但它只给出了噪音。我听不到任何音乐

这是我的代码。

int  intSize = android.media.AudioTrack.getMinBufferSize(8000,
                    AudioFormat.CHANNEL_CONFIGURATION_MONO,
                    AudioFormat.ENCODING_PCM_16BIT);

AudioTrack oTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000,
                    AudioFormat.CHANNEL_CONFIGURATION_MONO,
                    AudioFormat.ENCODING_PCM_16BIT, intSize,
                    AudioTrack.MODE_STREAM);

oTrack.play();
oTrack.write(buffer, 0, buffer.length);

这里缓冲区是我正在读的音频数据。

我可以在MediaPlayer中播放相同的缓冲区,但我无法在audiotrack中播放。

我可能做错了什么?

1 个答案:

答案 0 :(得分:3)

显然AudioTrack只播放PCM音频,所以要么你必须找到一种方法将MP3自己解码为PCM,要么使用MediaPlayer代替它来为你做解码(根据http://developer.android.com/guide/topics/media/index.html)。