ตัวแปลงรหัสสื่อ

ตั้งแต่ Android 10 (API ระดับ 29) ขึ้นไป จะมีเมธอดใน MediaCodecInfo ที่แสดงข้อมูลเพิ่มเติมเกี่ยวกับตัวแปลงรหัส ดังนี้

isSoftwareOnly()
แสดงผลเป็น "จริง" หากตัวแปลงรหัสทำงานในซอฟต์แวร์เท่านั้น ตัวแปลงรหัสซอฟต์แวร์ไม่รับประกันประสิทธิภาพการแสดงผล
isHardwareAccelerated()
แสดงค่าเป็น "จริง" หากตัวแปลงรหัสได้รับการเร่งโดยฮาร์ดแวร์
isVendor()
แสดงค่าเป็น "จริง" หากผู้ให้บริการอุปกรณ์เป็นผู้จัดหาตัวแปลงรหัส หรือแสดงค่าเป็น "เท็จ" หากแพลตฟอร์ม Android เป็นผู้จัดหา
isAlias()
MediaCodecList อาจมีรายการเพิ่มเติมสำหรับตัวแปลงรหัสพื้นฐานเดียวกันโดยใช้ชื่อตัวแปลงรหัสอื่น (ชื่อแทน) เมธอดนี้จะแสดงผลเป็น "จริง" หากตัวแปลงรหัสในรายการนี้เป็นชื่อแทนของตัวแปลงรหัสอื่น

นอกจากนี้ MediaCodec.getCanonicalName() จะแสดงชื่อตัวแปลงรหัสที่สำคัญสำหรับตัวแปลงรหัสที่สร้างผ่านชื่อแทน

คะแนนประสิทธิภาพ

จุดประสิทธิภาพแสดงถึงความสามารถของตัวแปลงรหัสในการแสดงผลวิดีโอที่ความสูง ความกว้าง และอัตราเฟรมที่เฉพาะเจาะจง ตัวอย่างเช่น จุดประสิทธิภาพ UHD_60 แสดงถึงวิดีโอความละเอียดสูงพิเศษ (3840x2160 พิกเซล) ที่แสดงผลที่ 60 เฟรมต่อวินาที

เมธอด MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() จะแสดงรายการของรายการ PerformancePoint ที่ตัวแปลงรหัสสามารถแสดงผลหรือบันทึกได้

คุณตรวจสอบได้ว่า PerformancePoint ที่ระบุครอบคลุมอีกรายการหรือไม่โดยเรียกใช้ PerformancePoint.covers(PerformancePoint) เช่น UHD_60.covers(UHD_50) จะแสดงผลเป็น "จริง"

ระบบจะแสดงรายการจุดประสิทธิภาพสำหรับตัวแปลงรหัสที่เร่งฮาร์ดแวร์ทั้งหมด รายการนี้อาจว่างเปล่าหากตัวแปลงรหัสไม่เป็นไปตามจุดประสิทธิภาพมาตรฐานต่ำสุด

โปรดทราบว่าอุปกรณ์ที่อัปเกรดเป็น Android 10 (ระดับ API 29) ขึ้นไปโดยไม่อัปเดตอิมเมจของผู้ให้บริการจะไม่มีข้อมูลจุดประสิทธิภาพ เนื่องจากข้อมูลนี้มาจาก HAL ของผู้ให้บริการ ในกรณีนี้ getSupportedPerformancePoints() จะแสดงผลเป็น Null