ประเภทพื้นผิว
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
หน้านี้อธิบายแพลตฟอร์มประเภทต่างๆ ที่สามารถใช้เล่นวิดีโอด้วย Media3 และวิธีเลือกแพลตฟอร์มที่เหมาะสมกับกรณีการใช้งานของคุณ หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์ Surface ใน Android โปรดอ่านเอกสารประกอบเกี่ยวกับกราฟิกนี้
เลือกประเภทแพลตฟอร์มสําหรับ PlayerView
แอตทริบิวต์ surface_type
ของ PlayerView
ช่วยให้คุณกำหนดประเภทแพลตฟอร์มที่ใช้เล่นวิดีโอได้ ค่าที่ใช้ได้มีดังนี้
surface_view
(SurfaceView
)
texture_view
(TextureView
)
spherical_gl_surface_view
(SphericalGLSurfaceView
) - สำหรับการเล่นวิดีโอแบบทรงกลม
video_decoder_gl_surface_view
(VideoDecoderGLSurfaceView
) - การแสดงผลวิดีโอโดยใช้โปรแกรมแสดงผลส่วนขยาย
none
- ซึ่งใช้สำหรับการเล่นเสียงเท่านั้นและควรใช้เพื่อหลีกเลี่ยงการสร้างแพลตฟอร์ม เนื่องจากการสร้างแพลตฟอร์มอาจทำให้สิ้นเปลือง
หากมุมมองมีไว้สำหรับการเล่นวิดีโอปกติ คุณควรใช้ surface_view
หรือ texture_view
SurfaceView
มีข้อดีหลายประการเหนือกว่า TextureView
สำหรับการเล่นวิดีโอ
- ลดการใช้พลังงานในอุปกรณ์ต่างๆ ลงอย่างมาก
- กำหนดเวลาเฟรมได้แม่นยำยิ่งขึ้น ทำให้วิดีโอเล่นได้อย่างราบรื่นมากขึ้น
- รองรับเอาต์พุตวิดีโอ HDR คุณภาพสูงขึ้นในอุปกรณ์ที่พร้อมใช้งาน
- รองรับเอาต์พุตที่ปลอดภัยเมื่อเล่นเนื้อหาที่ได้รับการคุ้มครอง DRM
- ความสามารถในการแสดงผลเนื้อหาวิดีโอที่ความละเอียดเต็มรูปแบบของจอแสดงผลในอุปกรณ์ Android TV ที่ปรับขนาดเลเยอร์ UI
ดังนั้น คุณควรเลือกใช้ SurfaceView
แทน TextureView
หากเป็นไปได้
คุณควรใช้ TextureView
เฉพาะในกรณีที่ SurfaceView
ไม่ตรงกับความต้องการของคุณ ตัวอย่างหนึ่งคือกรณีที่ต้องใช้ภาพเคลื่อนไหวหรือการเลื่อนที่ราบรื่นของแพลตฟอร์มวิดีโอก่อน Android 7.0 (API ระดับ 24) ตามที่อธิบายไว้ในหมายเหตุต่อไปนี้ ในกรณีนี้ เราขอแนะนำให้ใช้ TextureView
เฉพาะในกรณีที่ SDK_INT
น้อยกว่า 24 (Android 7.0) และ SurfaceView
ในกรณีอื่นๆ
เลือกประเภทพื้นผิวใน "เขียน"
ใน Compose โซลูชันการทำงานร่วมกันจะใช้ AndroidView
Composable เพื่อรวมSurfaceView
และ TextureView
Composable 2 รายการที่ตรงกันคือ AndroidExternalSurface
และ AndroidEmbeddedExternalSurface
โมดูล ui-compose
ของ Media3 มี Composable PlayerSurface
ที่ลิงก์ Player
กับ Surface
ในลักษณะที่คำนึงถึงวงจร ประเภทพื้นผิวในกรณีนี้มีดังนี้
ไม่มีประเภท none
เนื่องจากจะสอดคล้องกับการไม่รวม PlayerSurface
ในต้นไม้ UI ของคอมโพสิท
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-03-26 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-03-26 UTC"],[],[]]