سؤال

في MediaPlayer.Create الطريقة يمكن استخدام معرف إلى ملف خام ولكن كيفية استخدام ذلك في طريقة setdatasource؟

هل كانت مفيدة؟

المحلول

يمكنك تحميل الصوت الخام في دفق الإدخال وحمله في MediaPlayer كما تريد دفق عادي:

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

ثم اتبع البرنامج التعليمي البث مثل pocketjourney.

ولكن هذا معقد للغاية كما يمكنك فقط الاتصال

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

نصائح أخرى

الرجوع إلى المصدر android.media.mediaplayer.

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

قد ترغب في إضافة Try-Catch إلى الكتلة.

إعادة صياغة إجابة كارتيك هنا احصل على URI من .MP3 مخزنة في مجلد RES / RAW في Android

إذا كنت ترغب في الحصول على أي موارد URI، فهناك طريقتان:

  1. باستخدام اسم المورد

بناء الجملة: Android.Resource: // [الحزمة] / [نوع الدقة] / [اسم الدقة

مثال: uri.parse ("Android.Resource: //com.my.package/drawable/icon")؛

  1. باستخدام معرف الموارد

بناء الجملة: Android.Resource: // [الحزمة] / [Resource_id

مثال: uri.parse ("Android.Resource: //com.my.package/" + r.drawable.icon)؛

كانت هذه أمثلة للحصول على URI لأي ملف صورة مخزنة في مجلد قابل للشرح. وبالمثل يمكنك الحصول على URIS من مجلد RES / RAW.

المنظمة البحرية الدولية الطريقة الثانية ستفضل أنها إعادة تسمية الموارد وما إلى أنه يمكن إعادة صياغة بسهولة.

اضبط مصدر البيانات مثل:

CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(),
              Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top