Pertanyaan Mengatur sumber data ke ID mentah di MediaPlayer


Dalam MediaPlayer.create metode id ke file Raw dapat digunakan tetapi bagaimana menggunakannya dalam metode setDataSource?


25
2017-08-16 05:17


asal


Jawaban:


Anda dapat memuat audio mentah ke dalam aliran input dan memuatnya ke MediaPlayer seperti Anda melakukan streaming normal:

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

lalu ikuti tutorial streaming seperti perjalanan saku

Tapi ini terlalu rumit karena Anda hanya bisa menelepon

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

13
2018-04-14 14:06



Lihat sumbernya android.media.MediaPlayer

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

Anda mungkin ingin menambahkan try-catch ke blok.


39
2017-11-21 02:24



Mengutip jawaban @ Kartik di sini Dapatkan file URI .mp3 yang disimpan di folder res / raw di android

Jika Anda ingin mendapatkan sumber daya URI maka ada dua cara:

  1. Menggunakan Nama Sumber Daya

Sintaks: android.resource: // [paket] / [tipe res] / [nama res]

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

  1. Menggunakan ID Sumber Daya

Sintaks: android.resource: // [paket] / [resource_id]

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

Ini adalah contoh untuk mendapatkan URI dari file gambar yang disimpan dalam folder drawable. Demikian pula Anda bisa mendapatkan URI res / folder mentah.

IMO cara kedua akan lebih disukai sebagai mengganti nama sumber daya dll bisa   mudah direproduksi dengan mudah.

Atur sumber data seperti:

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(),
              Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));

13
2018-01-11 15:29