MediaPlayer.getCurrentPosition () devuelve múltiplos de 2048 en lugar de la posición actual

Mi aplicación utiliza la clase MediaPlayer para reproducir algunas muestras de sonido, y tengo un Seekbar para seguir el progreso de la reproducción. En todos mis teléfonos de prueba, pero 1, todo funciona bien. Sin embargo, en el Sony Xperia , me encuentro con un error extraño con el seguimiento del progreso. Reproducción de audio funciona muy bien, pero cuando intento MediaPlayer.getCurrentPosition() , sólo obtener incrementos de 2048.

Por ejemplo, en el LG G2 (con Android 4.4.2), veo valores como estos:

 0, 213, 279, 348, 416, ... 

que me permite actualizar el SeekBar en consecuencia. Sin embargo, en el Sony Xperia (también con Android 4.4.2), siempre obtengo estos valores:

 0, 0, 0, ... , 2048, 2048, 2048, ... , 4096, 4096, ... , 6144, 6144, ... 

Reproducción de audio funciona bien, pero mi barra de progreso salta en incrementos de 2 segundos. Prefiero no tener que implementar otro sistema de temporización ya que el esquema existente funciona para todos excepto para el Xperia. Desde el G2 se ejecuta esta multa en 4.4.2, creo que puedo descartar la versión de Android como el problema.

¿Alguien ha visto este problema en el Sony Xperia u otros dispositivos? ¿Se puede remediar este problema fácilmente?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.