Android controla la velocidad de reproducción de audio y obtiene recursos sin procesar

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 = 3000y solo puede reproducir localmente archivos o guardar En el rawarchivo 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 SoundPoolmodificar 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 rawel 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);

Supongo que te gusta

Origin blog.csdn.net/Ser_Bad/article/details/53784128
Recomendado
Clasificación