Bộ mã hoá và giải mã nội dung nghe nhìn
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Kể từ Android 10 (API cấp 29) trở lên, có các phương thức trong MediaCodecInfo
cho biết thêm thông tin về một codec:
isSoftwareOnly()
- Trả về true nếu bộ mã hoá và giải mã chỉ chạy trong phần mềm. Bộ mã hoá và giải mã phần mềm không đảm bảo hiệu suất kết xuất.
isHardwareAccelerated()
- Trả về true nếu một bộ mã hoá và giải mã được tăng tốc bằng phần cứng.
isVendor()
- Trả về giá trị true nếu bộ mã hoá và giải mã do nhà cung cấp thiết bị cung cấp hoặc giá trị false nếu do nền tảng Android cung cấp.
isAlias()
MediaCodecList
có thể chứa các mục bổ sung cho cùng một bộ mã hoá và giải mã cơ bản bằng (các) tên bộ mã hoá và giải mã thay thế (bí danh). Phương thức này sẽ trả về giá trị true nếu codec trong mục này là một bí danh cho một codec khác.
Ngoài ra, MediaCodec.getCanonicalName()
trả về tên codec cơ bản cho các codec được tạo thông qua một biệt hiệu.
Điểm hiệu suất thể hiện khả năng của một bộ mã hoá và giải mã trong việc kết xuất video ở một chiều cao, chiều rộng và tốc độ khung hình cụ thể. Ví dụ: điểm hiệu suất UHD_60
biểu thị video có độ phân giải siêu cao (3840x2160 pixel) được kết xuất ở tốc độ 60 khung hình/giây.
Phương thức MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
trả về một danh sách các mục PerformancePoint
mà bộ mã hoá và giải mã có thể kết xuất hoặc ghi lại.
Bạn có thể kiểm tra xem một PerformancePoint
nhất định có bao phủ một PerformancePoint
khác hay không bằng cách gọi PerformancePoint.covers(PerformancePoint)
.
Ví dụ: UHD_60.covers(UHD_50)
trả về true.
Danh sách các điểm hiệu suất được cung cấp cho tất cả các bộ mã hoá và giải mã được tăng tốc bằng phần cứng.
Đây có thể là một danh sách trống nếu bộ mã hoá và giải mã không đáp ứng ngay cả điểm hiệu suất tiêu chuẩn thấp nhất.
Xin lưu ý rằng những thiết bị đã được nâng cấp lên Android 10 (API cấp 29) trở lên mà không cập nhật hình ảnh nhà cung cấp sẽ không có dữ liệu điểm hiệu suất, vì dữ liệu này đến từ HAL của nhà cung cấp. Trong trường hợp này, getSupportedPerformancePoints()
sẽ trả về giá trị rỗng.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-27 UTC."],[],[],null,["Beginning with Android 10 (API level 29) and higher, there are methods in\n[`MediaCodecInfo`](/reference/android/media/MediaCodecInfo) that\nreveal more information about a codec:\n\n[`isSoftwareOnly()`](/reference/android/media/MediaCodecInfo#isSoftwareOnly)\n: Returns true if the codec runs in software only. Software codecs make no\n guarantees about rendering performance.\n\n[`isHardwareAccelerated()`](/reference/android/media/MediaCodecInfo#isHardwareAccelerated)\n: Returns true if a codec is accelerated by hardware.\n\n[`isVendor()`](/reference/android/media/MediaCodecInfo#isVendor)\n: Returns true if the codec is provided by the device vendor or false if provided\n by the Android platform.\n\n[`isAlias()`](/reference/android/media/MediaCodecInfo#isAlias)\n: `MediaCodecList` may contain additional entries for the same underlying codec\n using an alternate codec name/s (alias/es). This method returns true if the\n codec in this entry is an alias for another codec.\n\nIn addition,\n[`MediaCodec.getCanonicalName()`](/reference/android/media/MediaCodecInfo#getCanonicalName)\nreturns the underlying codec name for codecs created via an alias.\n\nPerformance Points\n\nA *performance point* represents a codec's ability to render video at a specific\nheight, width and frame rate. For example, the `UHD_60` performance point\nrepresents Ultra High Definition video (3840x2160 pixels) rendered at 60 frames\nper second.\n\nThe method\n[`MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()`](/reference/android/media/MediaCodecInfo.VideoCapabilities#getSupportedPerformancePoints())\nreturns a list of\n[`PerformancePoint`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint)\nentries that the codec can render or capture.\n\nYou can check whether a given `PerformancePoint` covers another by calling\n[`PerformancePoint.covers(PerformancePoint)`](/reference/android/media/MediaCodecInfo.VideoCapabilities.PerformancePoint#covers(android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint)).\nFor example, `UHD_60.covers(UHD_50)` returns true.\n\nA list of performance points is provided for all hardware-accelerated codecs.\nThis could be an empty list if the codec does not meet even the lowest standard\nperformance point.\n\nNote that devices which have been upgraded to Android 10 (API level 29) and higher without\nupdating the vendor image will not have performance point data, because this\ndata comes from the vendor HAL. In this case, `getSupportedPerformancePoints()`\nreturns null."]]