لماذا لا يمكنني الوصول إلى الملفات المحلية في التطبيق التجريبي؟
فرض مساحة التخزين على النطاق من Android 11
(المستوى 30 من واجهة برمجة التطبيقات) يمنع الوصول المباشر إلى نظام الملفات. للاختبار اليدوي أثناء
من التطوير، يمكن الوصول إلى الملفات المحلية عن طريق إضافة أدوات الإدارة الخارجية
إذن مساحة التخزين في بيان التطبيق التجريبي:
adb shell appops set --uid androidx.media3.demo.transformer \
MANAGE_EXTERNAL_STORAGE allow
لماذا يتعذّر التصدير على جهاز معيّن؟
يُرجى الإبلاغ عن مشكلة بشأن مشكلة Media3.
جهاز تتبُّع يتضمن معلومات كافية
لإعادة إنتاج المشكلة. يمكن إضافة حلول للمشاكل الخاصة بالجهاز إلى
المكتبة لتحسين التوافق بمرور الوقت.
هل يتيح المحوِّل تحويل (أو تسجيل) الوسائط البعيدة؟
يتيح المحوِّل البث المباشر التدريجي عن بُعد، بما في ذلك حاويات ملفات الوسائط
مثل MP4.
في ظروف الشبكة السيئة للغاية، قد يتعذّر التصدير بسبب التخزين المؤقت
تؤدي الوسائط البعيدة لفترة طويلة جدًا إلى تشغيل عمليات التحقق في المستخدم التي تهدف إلى
تحديد أن المسار عالق. يمكنك إلغاء السلوك الافتراضي من خلال
الإعداد maxDelayBetweenMuxerSamplesMs في Transformer.Builder:
يؤدي اجتياز C.TIME_UNSET إلى إزالة المهلة بالكامل، ولكن إذا كان تطبيقك يعمل على
شرائح العرض التي يمكن أن يتعطّل فيها MediaCodec، ويمكنك ضبط قيمة أكبر على قيمة غير صفرية
المهلة.
هل يتيح المحوِّل إدخال البيانات بدقة 8k؟
يتم تنفيذ المحوِّل بطريقة لا تتضمن تنسيقًا، لذلك لا تحد من
معالجة فيديو بدقة 8K، إلا أن إمكانات الأجهزة على الجهاز قد تعني أن
لا يمكن التصدير بنجاح. على سبيل المثال، حتى على الأجهزة التي يمكنها التقاط صور بدقة 8K،
قد لا يكون من الممكن فك ترميز فيديو بدقة 8K وإعادة ترميزه بسبب تجاوز
برامج ترميز الأجهزة أو موارد ذاكرة الوصول العشوائي المتاحة.
ما علاقة أداة التحويل بتحويل ترميز الوسائط المتوافق مع النظام الأساسي؟
تحويل الترميز المتوافق مع الوسائط
هي إحدى ميزات نظام Android الأساسي من Android 12 (المستوى 31 من واجهة برمجة التطبيقات) التي تحوّل
وسائط لا يزيد طولها عن دقيقة واحدة وبتنسيقات يدعمها التطبيق إذا كنت
الموافقة على استخدام هذه الميزة، قراءة ملف وسائط بتنسيق غير متوافق
تحويل ترميزها عند الطلب، ويتم تخزين النتيجة مؤقتًا لقراءتها لاحقًا
العمليات التجارية.
يدعم المحوِّل أيضًا التنسيق
إحالة ناجحة، لكن
فهو متاح كمكتبة دعم، ويتمتع التطبيق بالتحكم الكامل في
عملية تحويل الترميز.
كيف يمكنني تقليل وقت استجابة التصدير أو زيادة سرعة معالجة البيانات؟
يعتمد المحوِّل على MediaCodec لفك الترميز الذي يتم تسريعه باستخدام الأجهزة
و OpenGL لمعالجة إطارات الفيديو. بناءً على قياساتنا على
الأجهزة التقليدية، فإن العامل المقيد في سرعة نقل بيانات المحول هو الأجهزة
سرعة معالجة بيانات برنامج الترميز MediaCodec لحالات الاستخدام بدون تأثيرات كبيرة
قيد المعالجة. ومن المحتمل أن يؤثر ذلك في عمليات التنفيذ الأخرى بالطريقة نفسها. بالنسبة
على سبيل المثال، يكون أداء ميزة تحويل الترميز المتوافق مع النظام الأساسي مماثلاً لأداء
المحوِّل.
تعمل معاينة تصحيح الأخطاء في التطبيق التجريبي على تقليل سرعة معالجة البيانات بشكلٍ كبير، لذا عليك إيقاف
عند إجراء اختبار باستخدام إصدار إصدار من التطبيق التجريبي
الفكرة الواقعية عن الأداء.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Troubleshooting\n\n- [Why can't I access local files in the demo app?](#local-files)\n- [Why does exporting fail on a specific device?](#device-specific)\n- [Does Transformer support transforming (or recording) remote media](#remote-media)\n- [Does Transformer support 8k input?](#8k-media)\n- [How does Transformer relate to platform compatible media transcoding?](#compatible-transcoding)\n- [How can I reduce export latency or increase throughput?](#throughput)\n\n*** ** * ** ***\n\n#### Why can't I access local files in the demo app?\n\n[Scoped storage enforcement](/about/versions/11/privacy/storage) from Android 11\n(API level 30) prevents direct file system access. For manual testing during\ndevelopment, it's possible to access local files by adding the manage external\nstorage permission in the demo app manifest: \n\n \u003cuses-permission android:name=\"android.permission.MANAGE_EXTERNAL_STORAGE\"/\u003e\n\nThen grant the permission via adb: \n\n```\nadb shell appops set --uid androidx.media3.demo.transformer \\\n MANAGE_EXTERNAL_STORAGE allow\n```\n\n#### Why does exporting fail on a specific device?\n\nPlease file an issue on the [Media3 issue\ntracker](https://github.com/androidx/media/issues) with enough information\nto reproduce the issue. Workarounds for device-specific issues can be added to\nthe library to improve compatibility over time.\n\n#### Does Transformer support transforming (or recording) remote media?\n\nTransformer supports remote progressive streams, including media file containers\nlike MP4.\n\nIn very poor network conditions, exporting may fail because buffering\nremote media for too long triggers checks in the muxer that are intended to\nidentify that the pipeline is stuck. You can override the default behavior by\nsetting `maxDelayBetweenMuxerSamplesMs` on `Transformer.Builder`: \n\n### Kotlin\n\n```kotlin\nTransformer.Builder(context)\n .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET)\n .build()\n```\n\n### Java\n\n```java\nnew Transformer.Builder(context)\n .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET)\n .build();\n```\n\n\u003cbr /\u003e\n\nPassing in `C.TIME_UNSET` removes the timeout entirely, but if your app runs on\nchipsets where `MediaCodec` can get stuck you may want to set a larger non-zero\ntimeout.\n| **[Known Issue #10943:](https://github.com/google/ExoPlayer/issues/10943)** Feature request to officially support transforming remote live streams with unknown duration using protocols like DASH and HLS.\n\n#### Does Transformer support 8k input?\n\nTransformer is implemented in a format-agnostic way, so it doesn't limit\nhandling of 8k video, but hardware capabilities on the device may mean that\nexporting can't succeed. For example, even on devices that can capture 8k,\nit might not be possible to decode and re-encode an 8k video due to exceeding\nthe available hardware codec or RAM resources.\n\n#### How does Transformer relate to platform compatible media transcoding?\n\n[Compatible media transcoding](/guide/topics/media-apps/video-app/compatible-media-transcoding)\nis an Android platform feature from Android 12 (API level 31) that converts\nmedia up to one minute in length into formats supported by the app. If you\nopt-in to using this feature, reading a media file in an incompatible format\ncauses it to be transcoded on demand, and the result is cached for later read\noperations.\n\nTransformer also supports [format\nconversion](/guide/topics/media/transformer/transformations?#transcode), but\nit's available as a support library and the app has full control over the\ntranscoding operation.\n\n#### How can I reduce export latency or increase throughput?\n\nTransformer relies on `MediaCodec` for hardware-accelerated decoding and\nencoding, and OpenGL for processing video frames. Based on our measurements on\ntypical devices, the limiting factor in Transformer's throughput is hardware\n`MediaCodec` encoder throughput for use cases without heavyweight effects\nprocessing. This is likely to impact other implementations in the same way. For\nexample, the platform compatible transcoding feature has similar performance to\nTransformer.\n\nThe demo app's debug preview significantly reduces throughput, so turn off the\npreview feature when testing with a release build of the demo app to get a\nrealistic idea of performance."]]