- چرا نمی توانم به فایل های محلی در برنامه آزمایشی دسترسی پیدا کنم؟
- چرا صادرات در یک دستگاه خاص با شکست مواجه می شود؟
- آیا Transformer از تبدیل (یا ضبط) رسانه راه دور پشتیبانی می کند؟
- آیا ترانسفورماتور از ورودی 8k پشتیبانی می کند؟
- چگونه ترانسفورماتور با رمزگذاری رسانه سازگار با پلتفرم ارتباط دارد؟
- چگونه می توانم تاخیر صادرات را کاهش دهم یا توان عملیاتی را افزایش دهم؟
چرا نمی توانم به فایل های محلی در برنامه آزمایشی دسترسی پیدا کنم؟
اجرای فضای ذخیره سازی محدوده از Android 11 (سطح API 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
، رفتار پیشفرض را لغو کنید:
کاتلین
Transformer.Builder(context) .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET) .build()
جاوا
new Transformer.Builder(context) .setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET) .build();
عبور از C.TIME_UNSET
مهلت زمانی را به طور کامل حذف میکند، اما اگر برنامه شما روی چیپستهایی اجرا میشود که MediaCodec
میتواند گیر کند، ممکن است بخواهید یک مهلت غیر صفر بزرگتر تنظیم کنید.
آیا ترانسفورماتور از ورودی 8k پشتیبانی می کند؟
Transformer به روشی مبتنی بر فرمت اجرا شده است، بنابراین مدیریت ویدیوی 8k را محدود نمی کند، اما قابلیت های سخت افزاری روی دستگاه ممکن است به این معنی باشد که صادرات نمی تواند موفقیت آمیز باشد. به عنوان مثال، حتی در دستگاههایی که میتوانند 8k ضبط کنند، ممکن است به دلیل فراتر رفتن از کدک سختافزاری یا منابع RAM موجود، رمزگشایی و رمزگذاری مجدد یک ویدیوی 8k ممکن نباشد.
چگونه ترانسفورماتور با رمزگذاری رسانه سازگار با پلتفرم ارتباط دارد؟
Transcoding رسانه سازگار یک ویژگی پلتفرم اندروید از Android 12 (سطح API 31) است که رسانه ها را تا یک دقیقه به فرمت های پشتیبانی شده توسط برنامه تبدیل می کند. اگر استفاده از این ویژگی را انتخاب کنید، خواندن یک فایل رسانه با فرمت ناسازگار باعث میشود که در صورت تقاضا رمزگذاری شود و نتیجه برای عملیاتهای خواندن بعدی ذخیره شود.
Transformer همچنین از تبدیل فرمت پشتیبانی می کند، اما به عنوان یک کتابخانه پشتیبانی در دسترس است و برنامه کنترل کاملی بر عملیات رمزگذاری دارد.
چگونه می توانم تاخیر صادرات را کاهش دهم یا توان عملیاتی را افزایش دهم؟
Transformer برای رمزگشایی و رمزگذاری با شتاب سخت افزاری به MediaCodec
و برای پردازش فریم های ویدیویی OpenGL متکی است. بر اساس اندازهگیریهای ما بر روی دستگاههای معمولی، عامل محدودکننده در توان ترانسفورماتور، توان پردازشی سختافزار رمزگذار MediaCodec
برای موارد استفاده بدون پردازش افکتهای سنگین است. این احتمالاً بر سایر پیاده سازی ها نیز به همین ترتیب تأثیر می گذارد. به عنوان مثال، ویژگی رمزگذاری سازگار با پلتفرم عملکردی مشابه ترانسفورماتور دارد.
پیشنمایش اشکالزدایی برنامه آزمایشی به طور قابلتوجهی توان عملیاتی را کاهش میدهد، بنابراین هنگام آزمایش با نسخه نسخهای از برنامه آزمایشی، ویژگی پیشنمایش را خاموش کنید تا ایده واقعی از عملکرد به دست آورید.