Pregunta

En el método MediaPlayer.create un identificador a un archivo RAW se puede utilizar, pero cómo utilizar ese método en setDataSource?

¿Fue útil?

Solución

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

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

y luego seguir un tutorial streaming como pocketjourney

Pero esto es demasiado complicado ya que sólo puede llamar

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

Otros consejos

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 añadir try-catch al bloque.

parafraseando @ respuesta de Kartik aquí Obtener URI del archivo .mp3 almacenada en res / carpeta prima en Android

Si desea obtener cualquier recurso URI entonces hay dos maneras:

  1. Uso Nombre del recurso
  

Sintaxis: android.resource: // [paquete] / [Tipo res] / [res nombre]

     

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

  1. Uso de ID de recurso
  

Sintaxis: android.resource: // [paquete] / [RESOURCE_ID]

     

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

Estos eran los ejemplos para obtener el URI de cualquier archivo de imagen almacenado en la carpeta estirable. Del mismo modo se puede obtener URI de res / carpeta de crudo.

  

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

Establecer la fuente de datos de este modo:

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(),
              Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top