【发布时间】:2014-09-06 18:10:21
【问题描述】:
我目前正在与AudioTrack 合作。我正在加载一个 mp3 文件并播放它。但是,根据设备的不同,音乐会以一半的速率或正常速率播放。
我的代码:
AudioTrack track= new AudioTrack( AudioManager.STREAM_MUSIC,
sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
initBuffer,
AudioTrack.MODE_STREAM);
sampleRate是AudioFormat返回的采样率,initBuffer是AudioTrack.getMinBufferSize()的缓冲区大小。
我已尝试更改采样率,但没有任何区别。缓冲区大小也没有影响。
事实上,切换到CHANNEL_CONFIGURATION_STEREO 确实使音乐在慢速设备上以正常速度播放,但它也使运行良好的设备以正常速度的两倍播放。我的问题是我希望所有设备都以正常速度播放。
有什么建议吗?
我已经阅读了这个帖子:Android AudioTrack slow playback,但它并没有告诉我如何找出哪些设备应该以单声道或立体声播放。
正常速度的设备:Urbano 4.2.2、Galaxy S4 4.3
设备速度减半、Galaxy S4 4.2.2、Experia Z 4.2.2
顺便说一句,我不能使用MediaPlayer 进行播放。 AudioTrack 包含在自定义播放器中,我需要在提取音频数据时编写它。 MediaPlayer 不会成功。
谢谢。
【问题讨论】:
-
如果您还没有,订阅andraudio 并在那里询问可能会受益。
-
谢谢!我也去看看
标签: android audiotrack