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:
- Usando el nombre del recurso
Sintaxis: android.resource: // [package] / [res type] / [res name]
Ejemplo: Uri.parse ("android.resource: //com.my.package/drawable/icon");
- 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);