Khắc phục sự cố


Tại sao tôi không truy cập được vào các tệp trên máy trong ứng dụng minh hoạ?

Thực thi bộ nhớ có giới hạn trên Android 11 (API cấp 30) ngăn chặn việc truy cập trực tiếp vào hệ thống tệp. Để kiểm thử 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 trong tệp kê khai ứng dụng minh hoạ:

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

Sau đó, cấp quyền 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 lỗi Media3 và cung cấp đủ 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 tiến trình từ xa, bao gồm cả các vùng chứa tệp nội dung nghe nhì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 do lưu nội dung nghe nhìn từ xa vào bộ đệm quá lâu trong quá trình kích hoạt quá trình kiểm tra trong trình kết hợp nhằm xác định rằng quy trình bị lỗi. 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();

Việc truyền C.TIME_UNSET vào sẽ xoá 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 vi mạch mà MediaCodec có thể bị nghẽn, bạn nên đặt thời gian chờ lớn hơn khác 0.

Transformer có hỗ trợ chế độ nhập 8k không?

Transformer được triển khai theo cách không phân biệt đị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ể đồng nghĩa với việc không thể xuất thành công. Ví dụ: ngay cả trên các thiết bị có thể quay video 8k, bạn có thể không giải mã và mã hoá lại video 8k được do vượt quá bộ mã hoá và giải mã phần cứng có sẵn hoặc tài nguyên RAM.

Transformer liên quan đến quá trình chuyển mã nội dung nghe nhìn tương thích với nền tảng như thế nào?

Chuyển mã nội dung nghe nhìn tương thích là một tính năng trên nền tảng Android từ Android 12 (API cấp 31) giúp chuyển đổi nội dung nghe nhìn có độ dài tối đa 1 phút thành đị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 tệp nội dung nghe nhìn ở định dạng không tương thích 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 để thực hiện các thao tác đọc sau.

Transformer cũng hỗ trợ chuyển đổi định dạng, nhưng có sẵn dưới dạng 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 công suất?

Transformer dựa vào MediaCodec để giải mã và mã hoá tăng tốc phần cứng, đồng thời dựa vào OpenGL để xử lý khung video. Dựa trên các phép đo của chúng tôi trên các thiết bị thông thường, yếu tố hạn chế trong công suất của Transformer là công suất bộ mã hoá MediaCodec phần cứng đối với các trường hợp sử dụng không phải xử lý hiệu ứng nặng. Điều này có thể tác động đến các phương pháp 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ể công suất, vì vậy, hãy tắt tính năng xem trước khi kiểm thử với bản phát hành của ứng dụng minh hoạ để có được ý tưởng thực tế về hiệu suất.