ما هو الفهرس في الوظيفة التالية؟
-
21-12-2019 - |
سؤال
sp<MetaData> MP3Extractor::getTrackMetaData(size_t index, uint32_t flags) {
ALOGE("%s\t%d",__FUNCTION__,__LINE__);
if (mInitCheck != OK || index != 0) {
return NULL;
}
return mMeta;
}
لماذا هذه الوظيفة مطلوبة في MP3Extractor
?
المحلول
MediaExtractor
هي وحدة تقوم بتنفيذ تحليل الحاوية أو تنسيق الملف للبيانات المتعددة الإرسال.في ملف سيكون هناك متعددة track
التي تتوافق مع بيانات محددة مثل video
أو audio
.وبالمثل، في أ MP3
قد يكون هناك مسارات متعددة يتم تحديدها بواسطة الفهرس الخاص بها.الفهرس الموجود في الدالة يتوافق مع محدد track
من اهتمام.
الآن، لماذا هذه الوظيفة مطلوبة؟منذ MP3Extractor
هو مستخرج آخر في الإطار، يجب أن يدعم هذه الوظيفة، والسبب التالي.دعونا نفكر في player
كمثال. AwesomePlayer
هو محرك اللاعب الذي يقوم بإعداد خط الأنابيب بأكمله.
في هذه العملية، يقوم محرك المشغل بإعداد المستخرج أولاً ثم يحاول إنشاء مكون التدفق السفلي مثل ملف decoder
لاستهلاك البيانات.ال decoder
خاص بالمسار الذي تم تحديده بواسطة index
.لخلق decoder
, يحتاج المرء إلى معرفة خصائص البيانات التي يتم تمثيلها أو التقاطها meta
أي.البيانات التعريفية التي سيتم استخدامها لإنشاء وتهيئة المكون المتدفق.