عیب‌یابی


چرا نمی‌توانم در برنامه نمایشی به فایل‌های محلی دسترسی داشته باشم؟

اجرای فضای ذخیره‌سازی محدود از Android 11 (میانای برنامه‌سازی کاربردی سطح ۳۰) از دسترسی مستقیم به سیستم فایل جلوگیری می‌کند. برای آزمایش دستی درطول توسعه، با افزودن اجازه مدیریت فضای ذخیره‌سازی خارجی در مانیفست برنامه نمایشی، می‌توان به فایل‌های محلی دسترسی داشت:

<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 از تبدیل (یا ضبط) رسانه از دور پشتیبانی می‌کند؟

«ترانسفورماتور» از جاری‌سازی‌های پیش‌رونده از دور، ازجمله محتویات فایل رسانه‌ای مانند MP4 پشتیبانی می‌کند.

در شرایط شبکه بسیار ضعیف، ممکن است صادر کردن ناموفق باشد زیرا بافر کردن رسانه از دور برای مدت طولانی باعث فعال شدن بررسی‌هایی در muxer می‌شود که برای شناسایی گیر کردن کانال طراحی شده‌اند. با تنظیم maxDelayBetweenMuxerSamplesMs در Transformer.Builder می‌توانید رفتار پیش‌فرض را ملغی کنید:

کاتلین

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

جاوا

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

ارسال C.TIME_UNSET مهلت زمانی را به‌طور کامل برمی‌دارد، اما اگر برنامه شما روی مجموعه‌های تراشه‌ای اجرا می‌شود که در آن‌ها MediaCodec ممکن است گیر کند، بهتر است مهلت زمانی غیرصفر بزرگ‌تری تنظیم کنید.

آیا Transformer از ورودی 8k پشتیبانی می‌کند؟

«ترانسفورماتور» به روشی مستقل از قالب پیاده‌سازی شده است، بنابراین مدیریت ویدیو 8k را محدود نمی‌کند، اما قابلیت‌های سخت‌افزاری دستگاه ممکن است باعث شود برون‌برد موفقیت‌آمیز نباشد. برای مثال، حتی در دستگاه‌هایی که می‌توانند ویدیو 8k ضبط کنند، ممکن است به‌دلیل فراتر رفتن از منابع سخت‌افزاری کدک یا RAM دردسترس، رمزگشایی و رمزگذاری مجدد ویدیو 8k امکان‌پذیر نباشد.

‫Transformer چگونه با تراتبدیل رسانه سازگار با پلاتفرم مرتبط است؟

تراتبدیل رسانه سازگار ویژگی پلاتفرم Android از Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) است که رسانه‌های حداکثر یک دقیقه‌ای را به قالب‌های پشتیبانی‌شده توسط برنامه تبدیل می‌کند. اگر با استفاده از این ویژگی موافقت کنید، خواندن فایل رسانه در قالب ناسازگار باعث می‌شود که به‌درخواست تراتبدیل شود و نتیجه برای عملیات خواندن بعدی در حافظه نهان ذخیره شود.

«تبدیل‌گر» از تبدیل قالب نیز پشتیبانی می‌کند، اما به‌صورت کتابخانه پشتیبانی دردسترس است و برنامه بر عمل تراتبدیل کنترل کامل دارد.

چگونه می‌توانم تأخیر در برون‌برد را کاهش دهم یا توان عملیاتی را افزایش دهم؟

‫Transformer برای رمزگشایی و کدبندی با شتاب سخت‌افزاری به MediaCodec و برای پردازش قاب‌های ویدیو به OpenGL متکی است. براساس اندازه‌گیری‌های ما در دستگاه‌های معمولی، عامل محدودکننده در گذردهی Transformer، گذردهی کدبند سخت‌افزاری MediaCodec برای موارد استفاده بدون پردازش سنگین جلوه‌ها است. این کار احتمالاً به همین روش بر پیاده‌سازی‌های دیگر تأثیر می‌گذارد. برای مثال، ویژگی تراتبدیل سازگار با پلاتفرم عملکردی مشابه با «تراتبدیل» دارد.

پیش‌نمایش اشکال‌زدایی برنامه نمایشی به‌طور قابل‌توجهی توان عملیاتی را کاهش می‌دهد، بنابراین هنگام آزمایش با ساختار انتشار برنامه نمایشی، ویژگی پیش‌نمایش را خاموش کنید تا ایده واقعی از عملکرد به‌دست آورید.