Recientemente se encontró un problema de control de la velocidad de reproducción de audio, el método común es utilizar SoundPool
.
Pero un problema con este método es que solo puede reproducirse durante 3 segundos en mi teléfono nubio. No encontré la configuración en el código fuente, pero hay un mensaje en la información de registro impresa :, D/MMParserExtractor: Using default parser out buffer size = 3000
y solo puede reproducir localmente archivos o guardar En el raw
archivo del medio, el archivo de red no se puede reproducir directamente, solo se puede descartar.
Después de buscar en Google, encontré otra forma:
http://stackoverflow.com/questions/10849961/speed-control-of-mediaplayer-in-android
el camino es:
MediaPlayer mp = ...; //Whatever
float speed = 0.75f;
mp.setPlaybackParams(mp.getPlaybackParams().setSpeed(speed));
Sin embargo, este método solo se puede utilizar cuando la API es igual a 23 o superior. Estos dos métodos se han encontrado hasta ahora.
La primera es SoundPool
modificar los archivos de audio de acuerdo con los requisitos de. La
segunda es abandonar los teléfonos móviles con API menor a 23 o llamar al gerente de producto.
Por cierto, anote raw
el método para obtener el ID del recurso:
int resId=context.getResources().getIdentifier(raw, "raw", context.getPackageName());
Uri uri=Uri.parse("android.resource://" + context.getPackageName() + "/raw/" + resId);