我有一些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();