เสื้อคลุม PHP ที่มีน้ำหนักเบารอบ FFMPEG เพื่อบันทึกหน้าจอดีที่สุดสำหรับการบันทึกการทดสอบการยอมรับของคุณโดยใช้ซีลีเนียมใช้งานง่ายและทำความสะอาดอินเตอร์เฟส OOP
ฉันได้รับภารกิจในการทำ ชุดทดสอบการตอบรับ ซึ่งรวมถึงการบันทึกวิดีโอของการทดสอบ ฉันใช้ ซีลีเนียม สำหรับงานและสำหรับการบันทึกวิดีโออย่างไรก็ตามฉันไม่สามารถหาวิธีแก้ปัญหาที่หรูหราซึ่งเป็นเหตุผลที่ฉันสร้างห้องสมุดนี้
หนึ่งในคุณสมบัติที่ดีที่สุดของห้องสมุดนี้คือความสะดวกในการใช้งาน
วิธี startRecording ถูกเรียกเมื่อผู้ใช้ต้องการเริ่มการบันทึกหลังจากนั้นไลบรารีนี้จะเริ่มการบันทึกวิดีโอในพื้นหลัง เมื่อผู้ใช้ทำงานเสร็จแล้วพวกเขาสามารถเรียก stopRecording เพื่อหยุดการบันทึก
ห้องสมุดได้รับการติดตั้งอย่างง่ายดายเป็นแพ็คเกจผ่านนักแต่งเพลง:
composer require dawood/phpscreenrecorder
นั่นคือไม่จำเป็นต้องมีอะไรอีกสำหรับการติดตั้ง
มีตัวอย่างในโฟลเดอร์ตัวอย่างเช่นกัน
ตรวจสอบให้แน่ใจว่าคุณได้รวม AutoLoader นักแต่งเพลงไว้ใน codebase ของคุณ
include " ../vendor/autoload.php " ;
use dawood PhpScreenRecorder ScreenRecorder ;
$ screenRecorder = new ScreenRecorder ();
$ screenRecorder -> setScreenSizeToCapture ( 1920 , 1080 );
$ screenRecorder -> startRecording ( __DIR__ . DIRECTORY_SEPARATOR . ' myVideo ' );
sleep ( 5 + 2 ); //doing random stuff
//when done stop recording
$ screenRecorder -> stopRecording ();
print " video is saved at : "" . $ screenRecorder -> getVideo (). ' " ' . PHP_EOL ; public function testLoginUserCorrectly ()
{
$ this -> screenRecorder -> setScreenSizeToCapture ( 1920 , 1080 );
$ this -> screenRecorder -> startRecording ( __DIR__ . " /videos/loginCorrectly.flv " , 2 );
$ loginInput = [
' username ' => ' test ' ,
' password ' => ' password '
];
$ this -> visit ( ' / ' )
-> submitForm ( " #loginform > form " , $ loginInput )
-> wait ( 3 )
-> see ( " Logout " )
-> wait ( 2 );
$ this -> screenRecorder -> stopRecording ( 0 );
} คำสั่ง ffmpeg shell สามารถยอมรับตัวเลือกที่แตกต่าง: สำหรับรายการตัวเลือกที่สมบูรณ์คุณสามารถเยี่ยมชม: http://ffmpeg.org/ffmpeg.html
setOptions ยอมรับตัวเลือกในอาร์เรย์ คุณสามารถให้ตัวเลือกใด ๆ ในวิธีต่อไปนี้: $ options [ ' -show_region ' =>' 1 ']
$ screenRecorder -> setOptions ( $ options );หมายเหตุ: คุณต้องเขียนตัวเลือกที่สมบูรณ์รวมถึง "-",
ฉันต้องทำแบบนี้เพราะมีตัวเลือกบางอย่างที่ต้องการ "-" สิ่งนี้และบางอย่างที่ไม่ยากที่จะรู้ว่าตัวเลือกใดที่ฉันต้องตั้งค่าว่านั่นคือเหตุผลที่คุณต้องให้ตัวเลือกที่สมบูรณ์
setScreenSizeToCapture ขนาดหน้าจอเพื่อจับภาพมันยอมรับข้อโต้แย้งสองข้อแรกคือความกว้างและอื่น ๆ เป็นความสูง
startRecording เรียกวิธีนี้หลังจากที่คุณตั้งค่าตัวเลือกที่ต้องการทั้งหมดแล้ว
สิ่งนี้จะเริ่มการบันทึกหน้าจอ วิธีการยอมรับอาร์กิวเมนต์เสริมสองข้อแรกตำแหน่งที่ต้องการเพื่อบันทึกไฟล์วิดีโอและสองจำนวนวินาทีในการนอนหลับหลังจากเริ่มกระบวนการ สิ่งนี้มีประโยชน์เนื่องจาก FFMPEG ใช้เวลา 1-2 วินาทีในการเริ่มการบันทึกค่าเริ่มต้นสำหรับนี่คือ 2 วินาที คุณสามารถเปลี่ยนแปลงสิ่งนี้ได้ตามความต้องการของคุณ
stopRecording สิ่งนี้จะหยุดการบันทึกหน้าจอ วิธีการนี้ยังสามารถใช้อาร์กิวเมนต์เสริมหนึ่งจำนวนวินาทีในการนอนหลับหลังจากเริ่มกระบวนการ สิ่งนี้มีประโยชน์เนื่องจาก FFMPEG ใช้เวลา 1-2 วินาทีในการเริ่มการบันทึก
getVideo ส่งคืนไฟล์วิดีโอที่บันทึกไว้
setBinary สำหรับไลบรารีนี้คุณไม่ต้องการไบนารีใด ๆ เนื่องจากทุกอย่างรวมอยู่แล้วอย่างไรก็ตามหากคุณต้องการใช้ไบนารีอื่น ๆ ที่คุณสามารถให้ได้โดยใช้วิธีนี้
getCommandToRun ส่งคืนคำสั่งที่สร้างขึ้นซึ่งจะดำเนินการโดยไลบรารี
สิ่งนี้มีประโยชน์ในการตรวจสอบว่าคุณตั้งค่าตัวเลือกหรือการดีบักอย่างไร
getOptions ส่งคืนอาร์เรย์ของตัวเลือกที่ตั้งไว้ทั้งหมด
getBinary ส่งคืนไฟล์ไบนารีที่ตั้งไว้ในปัจจุบันเช่น ffmpeg
ตัวบันทึกหน้าจอ PHP เป็นซอฟต์แวร์ที่ได้รับอนุญาตจากการเปิดใช้งานภายใต้ใบอนุญาต MIT
ขอบคุณผู้มีส่วนร่วมทุกคนแยกที่เก็บนี้และส่งคำขอดึงมาให้ฉัน
Dawood Ikhlaq และชุมชนโอเพ่นซอร์ส