تحديد المشاكل وحلّها


لماذا لا يمكنني الوصول إلى الملفات المحلية في التطبيق التجريبي؟

يمنع فرض ميزة "التخزين الفرعي" في الإصدار 11 من نظام التشغيل Android (المستوى 30 من واجهة برمجة التطبيقات) الوصول المباشر إلى نظام الملفات. لإجراء الاختبار اليدوي أثناء عملية التطوير، يمكن الوصول إلى الملفات المحلية من خلال إضافة إذن إدارة التخزين الخارجي في بيان التطبيق التجريبي:

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

بعد ذلك، امنح الإذن من خلال adb:

adb shell appops set --uid androidx.media3.demo.transformer \
    MANAGE_EXTERNAL_STORAGE allow

لماذا يتعذّر التصدير على جهاز معيّن؟

يُرجى تسجيل مشكلة في أداة تتبُّع المشاكل في Media3 مع توفير معلومات كافية لإعادة إنتاج المشكلة. يمكن إضافة حلول بديلة للمشاكل الخاصة بأجهزة معيّنة إلى المكتبة لتحسين التوافق بمرور الوقت.

هل يتيح Transformer تحويل (أو تسجيل) الوسائط البعيدة؟

يتيح Transformer بث المحتوى بشكل تدريجي عن بُعد، بما في ذلك حاويات ملفات الوسائط مثل MP4.

في ظروف الشبكة السيئة جدًا، قد يتعذّر التصدير لأنّ التخزين المؤقت للوسائط البعيدة لفترة طويلة جدًا يؤدي إلى تشغيل عمليات التحقّق في برنامج دمج الصوت والفيديو، وهي مصمَّمة لتحديد ما إذا كان مسار البيانات عالقًا. يمكنك إلغاء السلوك التلقائي من خلال ضبط maxDelayBetweenMuxerSamplesMs على Transformer.Builder:

Kotlin

Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build()

Java

new Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build();

يؤدي إدخال القيمة C.TIME_UNSET إلى إزالة المهلة تمامًا، ولكن إذا كان تطبيقك يعمل على شرائح معالجة يمكن أن تتوقف فيها القيمة MediaCodec، يمكنك ضبط مهلة أكبر من صفر.

هل يتيح Transformer إدخال محتوى بدقة 8k؟

يتم تنفيذ Transformer بطريقة مستقلة عن التنسيق، لذا لا يحدّ من إمكانية معالجة فيديو بدقة 8k، ولكن قد تعني إمكانات الأجهزة على الجهاز أنّه لا يمكن إكمال عملية التصدير. على سبيل المثال، حتى على الأجهزة التي يمكنها تسجيل فيديو بدقة 8k، قد يتعذّر فك ترميز فيديو بدقة 8k وإعادة ترميزه بسبب تجاوز موارد برامج الترميز أو ذاكرة الوصول العشوائي المتاحة.

ما هي العلاقة بين Transformer وتحويل الوسائط إلى تنسيق متوافق مع النظام الأساسي؟

تحويل الوسائط إلى تنسيق متوافق هي ميزة في نظام Android الأساسي بدءًا من الإصدار 12 (مستوى واجهة برمجة التطبيقات 31) تحوّل الوسائط التي تصل مدتها إلى دقيقة واحدة إلى تنسيقات متوافقة مع التطبيق. إذا وافقت على استخدام هذه الميزة، سيؤدي فتح ملف وسائط بتنسيق غير متوافق إلى تحويل ترميزه عند الطلب، وسيتم تخزين النتيجة مؤقتًا لاستخدامها في عمليات القراءة لاحقًا.

يتوافق Transformer أيضًا مع تحويل التنسيق، ولكنّه متاح كمكتبة متوافقة، ويتحكّم التطبيق بشكل كامل في عملية تحويل الترميز.

كيف يمكنني تقليل وقت الاستجابة للتصدير أو زيادة معدّل نقل البيانات؟

تعتمد أداة Transformer على MediaCodec لفك الترميز والترميز المسرَّعَين على الأجهزة، وعلى OpenGL لمعالجة إطارات الفيديو. استنادًا إلى قياساتنا على الأجهزة العادية، فإنّ العامل المحدّد في سرعة معالجة البيانات في Transformer هو سرعة معالجة البيانات MediaCodec لبرنامج الترميز المضمّن في الجهاز لحالات الاستخدام التي لا تتضمّن معالجة تأثيرات ثقيلة. من المحتمل أن يؤثر ذلك في عمليات التنفيذ الأخرى بالطريقة نفسها. على سبيل المثال، تقدّم ميزة تحويل الترميز المتوافق مع المنصات أداءً مشابهًا لأداء Transformer.

تقلّل معاينة تصحيح الأخطاء في التطبيق التجريبي سرعة معالجة البيانات بشكل كبير، لذا عليك إيقاف ميزة المعاينة عند الاختبار باستخدام بنية الإصدار من التطبيق التجريبي للحصول على فكرة واقعية عن الأداء.