Frage

In MediaPlayer.create Verfahren eine ID zu einer Raw-Datei verwendet werden kann, sondern, wie das Verfahren in setDataSource zu benutzen?

War es hilfreich?

Lösung

Sie können das Roh-Audio in einen Eingangsstrom geladen und in einen Mediaplayer laden, als würden Sie einen normalen Strom:

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

und dann einem Streaming-Tutorial wie

Andere Tipps

Siehe die Quelle android.media.MediaPlayer

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

Sie möchten Try-Catch zum Block hinzuzufügen.

paraphrasieren @ Kartik Antwort hier erhalten URI von MP3-Datei gespeichert in res / raw Ordner in android

Wenn Sie URI jede Ressource erhalten wollen, dann gibt es zwei Möglichkeiten:

  1. Verwenden von Resource Name
  

Syntax: android.resource: // [Paket] / [res geben] / [res name]

     

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

  1. Verwendung von Ressourcen-ID
  

Syntax: android.resource: // [Paket] / [RESOURCE_ID]

     

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

Dies waren die Beispiele, die die URI jeder Bilddatei in ziehbar Ordner gespeichert zu bekommen. Ebenso können Sie URIs von res / raw Ordner erhalten.

  

IMO die zweite Möglichkeit wäre als die Umbenennung der Ressource usw. werden bevorzugt kann   werden leicht Refactoring.

Legen Sie die Datenquelle wie folgt:

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(),
              Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top