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

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

isSoftwareOnly()
แสดงผลเป็น "จริง" หากตัวแปลงรหัสทำงานในซอฟต์แวร์เท่านั้น ตัวแปลงรหัสของซอฟต์แวร์ไม่ทำให้ รับประกันประสิทธิภาพในการแสดงผล
isHardwareAccelerated()
ส่งคืนค่า true หากตัวแปลงรหัสเร่งด้วยฮาร์ดแวร์
isVendor()
ส่งคืนค่า true หากตัวแปลงรหัสให้ไว้โดยผู้ให้บริการอุปกรณ์ หรือแสดงค่าเป็น false (เท็จ) หากมีให้ ตามแพลตฟอร์ม 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