ล่าสุดผมกำลังเขียนโปรแกรมเล่นแบบกำหนดเอง ก่อนที่จะเขียน เราต้องศึกษาคุณสมบัติและวิธีการทั้งหมดของผู้เล่นก่อน โดยรู้ว่าศัตรูของเราและตัวเราเองเท่านั้นจึงจะสามารถต่อสู้ผ่านการต่อสู้นับร้อยครั้งได้... ต่อไปเราจะหารือกัน ผู้เล่นที่เราเขียนและข้อผิดพลาดบางอย่างที่เราพบก็อัปโหลดด้วย
แอตทริบิวต์อินไลน์ของแท็กวิดีโอควรมีมากกว่านี้...แต่ฉันยังไม่ได้ใช้ คุณสามารถตรวจสอบเอกสาร MDN ได้
คุณสมบัติและวิธีการของออบเจ็กต์วิดีโอ1. สถานะข้อผิดพลาด
$video.error; //null: ปกติ $video.error.code; //1. การยกเลิกผู้ใช้ 2. ข้อผิดพลาดของเครือข่าย 3. ข้อผิดพลาดในการถอดรหัส 4. URL ไม่ถูกต้อง
2. คุณลักษณะสถานะเครือข่าย (บางส่วนใช้กันทั่วไปมากกว่า)
$video.currentSrc; //ส่งคืน URL ของทรัพยากรปัจจุบัน $video.src = value; //ส่งคืนหรือตั้งค่า URL ของทรัพยากรปัจจุบัน $video.canPlayType(type); //ไม่ว่าจะเป็นทรัพยากรในรูปแบบใดรูปแบบหนึ่งก็ตาม เล่น $video.networkState ; //0. องค์ประกอบนี้ไม่ได้เตรียมใช้งาน 1. ปกติ แต่ไม่ได้ใช้เครือข่าย 2. กำลังดาวน์โหลดข้อมูล 3. ไม่พบทรัพยากร $video.load(); // รีโหลดทรัพยากรที่ระบุโดย src $video. บัฟเฟอร์; // กลับไปที่พื้นที่บัฟเฟอร์ $video.buffered.end(0) รับช่วงเวลาสุดท้ายของข้อมูล $video.preload; //none: อย่าโหลดข้อมูลเมตาล่วงหน้า: โหลดข้อมูลทรัพยากรล่วงหน้าอัตโนมัติ:
3.สถานะพร้อม
$video.readyState; //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA $video.seeking; // ไม่ว่าจะเป็นการค้นหา
4.สถานะการเล่น (ที่ใช้กันทั่วไป)
$video.currentTime = value; // ตำแหน่งการเล่นปัจจุบัน การมอบหมายสามารถเปลี่ยนตำแหน่ง $video.duration; // สตรีมความยาวทรัพยากรปัจจุบันส่งคืนอนันต์ $video.paused; // ไม่ว่าจะหยุดชั่วคราว $video.defaultPlaybackRate = value; //ค่าเริ่มต้น สามารถตั้งค่าความเร็วในการเล่นได้ $video.playbackRate = value; //ความเร็วการเล่นปัจจุบันจะเปลี่ยนไปทันทีหลังจากตั้งค่า $video.seekable; // กลับไปยังพื้นที่ที่ค้นหาได้ $video.ended; $วิดีโอเล่นอัตโนมัติ; //ว่าจะเล่น $video.loop โดยอัตโนมัติหรือไม่ // จะวนซ้ำ $video.play(); // เล่น $video.pause();
5.การควบคุม
$video.controls;//ว่ามีแถบควบคุมเริ่มต้นหรือไม่ $video.volume = value; //Volume $video.muted = value; //วิธีปิดเสียงวิดีโอ (โดยทั่วไป *) loadstart //ไคลเอ็นต์เริ่มร้องขอ ข้อมูล *ความคืบหน้า // ไคลเอนต์กำลังร้องขอการระงับข้อมูล // การดาวน์โหลดล่าช้าถูกยกเลิก // ไคลเอนต์ยุติการดาวน์โหลดอย่างแข็งขัน (ไม่ได้เกิดจากข้อผิดพลาด) * ข้อผิดพลาด // พบข้อผิดพลาดเมื่อร้องขอข้อมูลจนตรอก // ความเร็วเครือข่ายจนตรอก * play //play () และทริกเกอร์การเล่นอัตโนมัติ *หยุดชั่วคราวเมื่อเริ่มเล่น //pause() ทริกเกอร์ Loadmetadata // รับความยาวทรัพยากรสำเร็จ *กำลังรอ //กำลังรอข้อมูล ไม่ใช่ข้อผิดพลาด *กำลังเล่น //เริ่มเล่น canplay //สามารถเล่นได้ แต่อาจถูกหยุดชั่วคราวเนื่องจากการโหลดตรงกลาง *สามารถเล่นผ่าน // สามารถเล่นการค้นหา // ค้นหาในระหว่างการค้นหาทรัพยากร // การค้นหาทรัพยากรเสร็จสมบูรณ์ *เวลาอัพเดต // เวลาเล่นเปลี่ยนไป *สิ้นสุดแล้ว // อัตราการเล่นสิ้นสุดการเปลี่ยนแปลง // อัตราการเล่นการเปลี่ยนแปลงระยะเวลาการเปลี่ยนแปลง // ความยาวทรัพยากรเปลี่ยนแปลง *การเปลี่ยนแปลงระดับเสียง // ระดับเสียงเปลี่ยนแปลง
โดยพื้นฐานแล้ว โค้ดของผู้เล่นแบบกำหนดเองจะเขียนตาม API และคุณลักษณะนี้ ซึ่งสะดวกสำหรับคุณที่จะตรวจสอบในภายหลัง...
ข้างต้นคือเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการศึกษาของทุกคน ฉันหวังว่าทุกคนจะสนับสนุน VeVb Wulin Network