สวัสดีชาวเน็ต:
ก่อนอื่นขอขอบคุณสำหรับการสนับสนุน "Music World" ของฉัน คุณอาจไม่สามารถใช้ประโยชน์จากงานของฉันได้ในวันนี้ เพื่อให้ทุกคนใช้งานได้ดีและเพื่อให้มันเติบโตอย่างรวดเร็ว ฉันได้เปิดโค้ดดั้งเดิมของโปรแกรมจากเวอร์ชันนี้ ฉันหวังว่าผู้เชี่ยวชาญทุกคนจะสามารถปรับปรุงมันได้ดียิ่งขึ้น ที่นี่ฉันจะอธิบายส่วนต่างๆ ของโปรแกรมของฉัน
1. หน้าต่างหลัก
ฟังก์ชั่นของหน้าต่างหลักประกอบด้วย: การแสดงตารางคลื่นเสียงแบบไดนามิก, การปรับช่องสัญญาณซ้ายและขวา, หยุดชั่วคราว, ดำเนินการต่อ, วนซ้ำ, เพลงถัดไป, เพลงก่อนหน้า ฯลฯ
2. แคตตาล็อกเพลง
โปรแกรมนี้ของฉันเขียนขึ้นเพื่อจำลอง Winamp อย่างสมบูรณ์ ไม่ว่าจะเป็นหน้าต่างหลักหรือหน้าต่างสามหน้าต่างรวมกัน หน้าต่างแคตตาล็อกเพลงรองรับการดับเบิลคลิกที่เพลงเพื่อเล่น รองรับการเปิดหลายไฟล์พร้อมกัน รองรับการลากและวางไฟล์จากตัวจัดการทรัพยากร และรองรับไฟล์รอง การเปิดแค็ตตาล็อกเพลง และบันทึกผ่านหน้าต่างหลัก คุณสามารถเลือกเล่นไฟล์เดียว เล่นตามลำดับ และสุ่มไฟล์ในไดเร็กทอรี
3. ข้อมูลผู้เขียน.
หน้าที่ของหน้าต่างนี้คือการสร้างเลย์เอาต์ของ Winamp สามตัวให้สมบูรณ์ และไม่มีความสำคัญในทางปฏิบัติ
สภาพแวดล้อมการพัฒนาของโปรแกรมคือ Delphi6.0 และระบบปฏิบัติการคือ Win98se ประเด็นทางเทคนิคที่ใช้คือ: (1) Api หน้าต่างโปร่งใสและการควบคุมช่องทางซ้ายและขวาระหว่างการเข้าสู่ระบบโปรแกรมทั้งหมดใช้การเรียก Windows API (2) การเรียกการควบคุม Mediaplay ของ Delphi ถูกใช้เมื่อเล่นไฟล์ VCD (3) VC++ สิ่งที่ทุกคนกังวลมากที่สุดคือปัญหาของตารางรูปคลื่นแบบไดนามิก จริงๆ แล้วฉันได้ตรวจสอบข้อมูลสำหรับปัญหานี้มาเป็นเวลาหนึ่งปีแล้ว บางครั้งใครๆ ก็ชอบเขียนซอฟต์แวร์เครื่องมือเล็กๆ ในเวลาว่าง แต่บางครั้งความรู้ของเราก็ยังไม่เพียงพอ หากคุณต้องการไปถึงระดับ Winamp จะต้องมีความแตกต่างมากมายแน่นอนชาวเน็ตอาจมีผู้เชี่ยวชาญได้
ตอนแรกฉันคิดว่าตารางรูปคลื่นได้มาจากการเรียกใช้ฟังก์ชัน API ดังนั้นฉันจึงตรวจสอบคู่มือ API ทั้งหมดแล้วไม่พบอะไรเลย ต่อมาฉันเริ่มค้นคว้าเกี่ยวกับระดับการถอดรหัส มีข้อมูลน้อยมากเกี่ยวกับเรื่องนี้บนอินเทอร์เน็ตที่ฉันค้นหาเป็นเวลาหลายสัปดาห์และไม่พบอะไรเลย วันหนึ่งฉันขายซีดีข้อมูล VC++ ระหว่างทางเลิกงาน และมีบทความเกี่ยวกับตารางรูปคลื่นแบบไดนามิกอยู่ในนั้น ฉันได้เรียนรู้ว่าการสร้างตารางรูปคลื่นเป็นผลมาจากการถอดรหัสโดยตรง ตัวแปรสมาชิก 8000 ตัว อาร์เรย์จะถอดรหัสไฟล์เพลงที่ต้องการด้วยตนเองและส่งออกโดยตรงผ่านการ์ดเสียง ความซับซ้อนนี้อยู่นอกเหนือความเข้าใจของฉันเนื่องจากจำนวนโค้ดเกิน 30,000 บรรทัด และคุณยังมีความรู้ด้านทฤษฎีดนตรีอีกด้วย การจำลองเอฟเฟกต์ดนตรีสามมิติก็เสร็จสิ้นผ่านการถอดรหัสเช่นกัน งานประจำวันของฉันคือการเขียนโปรแกรมฐานข้อมูล และการพัฒนามัลติมีเดียของฉันยังห่างไกลจากระดับที่กล่าวไว้ในบทความ และไฟล์แต่ละรูปแบบจะต้องมีมาตรฐานการถอดรหัสที่แตกต่างกัน มาตรฐานเหล่านี้ได้รับการพัฒนาโดยองค์กร MP3 ระหว่างประเทศ โปรดอ่านรายละเอียดในเอกสารทางเทคนิค โปรแกรมมัลติมีเดียของฉันเพิ่งถูกวางลง เป้าหมายของฉันหันไปใช้การควบคุมของบุคคลที่สาม ฉันต้องการใช้การควบคุมของบุคคลที่สามเพื่อให้บรรลุวัตถุประสงค์ของการถอดรหัสและการเล่น แต่ยังไม่มีการควบคุมสำเร็จรูป เมื่อไม่กี่วันก่อน ฉันบังเอิญค้นพบว่าบริษัทถอดรหัสมัลติมีเดียในเซี่ยงไฮ้ได้จัดเตรียมไลบรารีการเชื่อมต่อแบบไดนามิกของตารางรูปคลื่น ด้วยสิ่งนี้ ฉันพบว่าการแสดงตารางรูปคลื่นของไฟล์มัลติมีเดีย แต่มีอินเทอร์เฟซที่สงวนไว้ไม่มาก ดังนั้นโปรแกรมของฉันไม่สามารถกรอไปข้างหน้าและย้อนกลับได้ หากฉันต้องการทำงานให้เสร็จสิ้น ฉันต้องใช้เงิน ไลบรารีลิงก์แบบไดนามิกรองรับเฉพาะการถอดรหัส MP3 และไม่รองรับการถอดรหัส MPG
หากคุณมีความเพียรที่จะเรียนรู้เทคโนโลยีของบริษัทถอดรหัสในเซี่ยงไฮ้ คุณจะเปลี่ยนงานที่มีอยู่ ฉันยังเรียนรู้อยู่ตลอดเวลาและหวังว่าชาวเน็ตบางคนจะสามารถแก้ไขปัญหานี้ได้อย่างสมบูรณ์โดยเร็วที่สุด
ขยาย