- Tại sao tôi không thể truy cập vào các tệp cục bộ trong ứng dụng demo?
- Tại sao không xuất được dữ liệu trên một thiết bị cụ thể?
- Transformer có hỗ trợ chuyển đổi (hoặc ghi) nội dung nghe nhìn từ xa không
- Transformer có hỗ trợ đầu vào 8k không?
- Transformer có liên quan như thế nào đến hoạt động chuyển mã tệp đa phương tiện tương thích với nền tảng?
- Làm cách nào để giảm độ trễ khi xuất hoặc tăng thông lượng?
Tại sao tôi không thể truy cập vào các tệp cục bộ trong ứng dụng minh hoạ?
Việc thực thi bộ nhớ có giới hạn từ Android 11 (cấp độ API 30) sẽ ngăn chặn quyền truy cập trực tiếp vào hệ thống tệp. Để kiểm thử theo cách thủ công trong quá trình phát triển, bạn có thể truy cập vào các tệp cục bộ bằng cách thêm quyền quản lý bộ nhớ ngoài vào tệp kê khai ứng dụng minh hoạ:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
Sau đó, cấp quyền thông qua adb:
adb shell appops set --uid androidx.media3.demo.transformer \
MANAGE_EXTERNAL_STORAGE allow
Tại sao không xuất được dữ liệu trên một thiết bị cụ thể?
Vui lòng báo cáo vấn đề trên công cụ theo dõi vấn đề của Media3 kèm theo đầy đủ thông tin để tái hiện vấn đề. Bạn có thể thêm các giải pháp cho các vấn đề cụ thể của thiết bị vào thư viện để cải thiện khả năng tương thích theo thời gian.
Transformer có hỗ trợ chuyển đổi (hoặc ghi) nội dung nghe nhìn từ xa không?
Transformer hỗ trợ các luồng truyền trực tuyến từ xa, bao gồm cả các vùng chứa tệp phương tiện như MP4.
Trong điều kiện mạng rất kém, quá trình xuất có thể không thành công vì việc lưu vào bộ đệm nội dung nghe nhìn từ xa quá lâu sẽ kích hoạt các quy trình kiểm tra trong bộ trộn tín hiệu nhằm xác định rằng quy trình đang bị kẹt. Bạn có thể ghi đè hành vi mặc định bằng cách đặt maxDelayBetweenMuxerSamplesMs trên Transformer.Builder:
Kotlin
Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build()
Java
new Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build();
Truyền vào C.TIME_UNSET sẽ loại bỏ hoàn toàn thời gian chờ, nhưng nếu ứng dụng của bạn chạy trên các chipset mà MediaCodec có thể bị kẹt, bạn nên đặt thời gian chờ khác 0 lớn hơn.
Transformer có hỗ trợ đầu vào 8K không?
Transformer được triển khai theo cách độc lập với định dạng, nên không giới hạn việc xử lý video 8K, nhưng các chức năng phần cứng trên thiết bị có thể khiến việc xuất không thành công. Ví dụ: ngay cả trên những thiết bị có thể quay video 8K, bạn vẫn có thể không giải mã và mã hoá lại được video 8K do vượt quá tài nguyên RAM hoặc bộ mã hoá và giải mã phần cứng hiện có.
Transformer liên quan như thế nào đến việc chuyển mã tệp đa phương tiện tương thích với nền tảng?
Tính năng chuyển mã tệp đa phương tiện tương thích là một tính năng của Nền tảng Android từ Android 12 (cấp độ API 31) giúp chuyển đổi nội dung nghe nhìn có thời lượng tối đa một phút sang các định dạng mà ứng dụng hỗ trợ. Nếu bạn chọn sử dụng tính năng này, việc đọc một tệp nội dung nghe nhìn ở định dạng không tương thích sẽ khiến tệp đó được chuyển mã theo yêu cầu và kết quả sẽ được lưu vào bộ nhớ đệm cho các thao tác đọc sau này.
Transformer cũng hỗ trợ chuyển đổi định dạng, nhưng có sẵn dưới dạng một thư viện hỗ trợ và ứng dụng có toàn quyền kiểm soát hoạt động chuyển mã.
Làm cách nào để giảm độ trễ khi xuất hoặc tăng thông lượng?
Transformer dựa vào MediaCodec để giải mã và mã hoá tăng tốc phần cứng, cũng như OpenGL để xử lý các khung hình video. Dựa trên các phép đo trên các thiết bị thông thường, yếu tố hạn chế công suất của Transformer là công suất bộ mã hoá MediaCodec phần cứng cho các trường hợp sử dụng không có quá trình xử lý hiệu ứng nặng. Điều này có thể ảnh hưởng đến các hoạt động triển khai khác theo cách tương tự. Ví dụ: tính năng chuyển mã tương thích với nền tảng có hiệu suất tương tự như Transformer.
Bản xem trước gỡ lỗi của ứng dụng minh hoạ làm giảm đáng kể thông lượng, vì vậy, hãy tắt tính năng xem trước khi kiểm thử bằng bản phát hành của ứng dụng minh hoạ để có ý tưởng thực tế về hiệu suất.