Я работаю сейчас с AudioTrack
. Я загружаю mp3-файл и играю в него. Однако, в зависимости от устройств, музыка играет либо половину скорости, либо нормальную скорость.AudioTrack играет с непоследовательной скоростью на разных устройствах
Мой код:
AudioTrack track= new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
initBuffer,
AudioTrack.MODE_STREAM);
sampleRate
является частота дискретизации возвращение AudioFormat
и размер буфера от AudioTrack.getMinBufferSize()
.
Я попытался изменить частоту дискретизации, но без разницы. Размер буфера также не влияет.
Фактически, переход на CHANNEL_CONFIGURATION_STEREO
делает музыку в обычном режиме на устройствах, которые были медленными, но это также делает работу, которая работает нормально, в два раза выше нормальной скорости. Моя проблема в том, что я хочу, чтобы все устройства играли с нормальной скоростью.
Любые предложения?
Я прочитал эту тему: Android AudioTrack slow playback, но это не говорит мне, как узнать, какие устройства должны играть в моно или стерео.
устройства при нормальной скорости: Урбано 4.2.2, Galaxy S4 4.3
Устройства на половине скорости, Galaxy S4 4.2.2, Experia Z 4.2.2
Кстати, я не могу использовать MediaPlayer
для воспроизведения , AudioTrack
включен в пользовательский плеер, и мне нужно записать аудиоданные, когда я их извлечу. MediaPlayer
не будет делать трюк.
Спасибо.
Если вы еще этого не сделали, вы можете воспользоваться подпиской на [andraudio] (http://music.columbia.edu/mailman/listinfo/andraudio) и запросить там. – Jakar
Спасибо! Я тоже проверю – Herve