在android中播放音轨中的音频

Posted

技术标签:

【中文标题】在android中播放音轨中的音频【英文标题】:playing audio from audio track in android 【发布时间】:2011-01-16 22:53:06 【问题描述】:

我想通过在线 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 中播放相同的缓冲区,但无法在音轨中播放。

我做错了什么?

【问题讨论】:

我会在包含代码的每一行的开头放置 4 个空格。 【参考方案1】:

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

【讨论】:

以上是关于在android中播放音轨中的音频的主要内容,如果未能解决你的问题,请参考以下文章

如何在音轨中找到静音部分

Javascript 从音轨中选择片段

使用 AVPlayer 音频播放 AVMutableComposition 会不同步

从 mp4 中提取音轨并将其保存到可播放的音频文件中

是否有相当于 android 的音轨的 iOS?

如何仅使用 mediaplayer android 通过耳机播放音频