我有一些mp3文件,我使用Android MediaPlayer来播放某些偏移量。精确的Android MediaPlayer seekTo
使用seekTo()似乎停在正确的位置。 player.getCurrrentPosition()返回正确的偏移量,但在某些情况下,实际位置关闭多达200毫秒。这些文件大约需要3分钟的录制时间,不正确的偏移似乎出现在最后。其中一些文件。
我试着用Android 4.0.3设备或4.3模拟器也有同样的效果。
任何人都有“微调”的经验MediaPlayer偏移?任何经验为什么MediaPlayer可能无法正常使用某些文件?他们都是CBR,立体声,一些采样频率为22050,一些为44100,不同的比特率。
我设置了另一个节目的偏移量并保存为mp3标记,然后在有疑问的情况下使用Audacity进行验证。 大胆同意我的估计什么是正确的抵消是,MediaPlayer似乎不同意。
我知道,我可以用AudioTrack与原始声音文件,并有更好的控制,但因为有许多mp3文件,因此,使用原始声音数据将会使相当大的应用程序或许多大可能是不切实际数据文件。
的代码是没有任何幻想:
player.seekTo(start);
player.start();
CountDownTimer timer = new CountDownTimer(length, 100) {
@Override
public void onTick(long millisUntilFinished) {
if (player!=null) setInt(R.id.nLocation, player.getCurrentPosition());
}
@Override
public void onFinish() {
if (player!=null) {
if (player.isPlaying()) {
player.pause();
}
setInt(R.id.nLocation, player.getCurrentPosition());
player.stop();
player.release();
player = null;
}
}
};
timer.start();