ใน 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