studio sonido reproductor reproducir programacion poner móviles musica mediaplayer desarrollo curso boton aplicaciones android android-mediaplayer

android - sonido - Configuración de origen de datos a una ID sin formato en MediaPlayer



reproducir mp3 android studio (3)

En el método MediaPlayer.create, se puede usar un id para un archivo Raw, pero ¿cómo usarlo en el método setDataSource?


Consulte la fuente android.media.MediaPlayer

AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid); if (afd == null) return; mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); afd.close();

Es posible que desee agregar try-catch al bloque.


Parafraseando la respuesta de @ Kartik aquí Obtenga el URI del archivo .mp3 almacenado en la carpeta res / raw en Android

Si desea obtener cualquier URI de recursos, hay dos formas:

  1. Usando el nombre del recurso

Sintaxis: android.resource: // [package] / [res type] / [res name]

Ejemplo: Uri.parse ("android.resource: //com.my.package/drawable/icon");

  1. Usando el ID del recurso

Sintaxis: android.resource: // [package] / [resource_id]

Ejemplo: Uri.parse ("android.resource: //com.my.package/" + R.drawable.icon);

Estos fueron los ejemplos para obtener el URI de cualquier archivo de imagen almacenado en una carpeta dibujable. Del mismo modo, puede obtener URIs de la carpeta res / raw.

OMI sería preferible la segunda forma, ya que cambiar el nombre del recurso, etc., puede ser fácilmente refaccionado.

Establecer la fuente de datos de esta manera:

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"

mp.setDataSource(getApplicationContext(), Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));


Puede cargar el audio en bruto en una secuencia de entrada y cargarlo en un MediaPlayer como lo haría en una secuencia normal:

InputStream ins = getResources().openRawResource(R.raw.example);

y luego siga un tutorial de transmisión como pocketjourney

Pero esto es demasiado complicado como puedes llamar

mp = MediaPlayer.create(counterstrikesb.this, R.raw.example);