[Download] โปรแกรมฟังเพลง MP3 ด้วย VISUAL C# (มี Source Code ด้วยนะจ๊ะ)
posted on 08 Apr 2009 10:43 by slowblade in Computer
โปรแกรมนี้ไม่ใช่โปร(ย่อๆละกัน)ฟังเพลงแบบเทพๆ (หรือเมพๆ) ออกจะดูกากๆ(เชิงอ่อนๆ)ซะด้วยซ้ำ เนื่องจากจุดประสงค์ของโปรนี้ถูกเขียนขึ้นมาเพื่อ 2 เหตุผลหลัก คือ
- เขียนโปรส่ง'จารย์เพื่อเอาคะแนน (เหตุผลหลักเลยล่ะ)
- ศึกษารูปแบบการทำงานโดยคร่าวๆของโปร (อันนี้คือเหตุผลทางวิชาการอ่านะ)
นับว่าเป็นการคิล(Kill หรือ "ฆ่า" นั่นแหละ)ตัวเองไปในตัวที่จะเขียนโปรนี้ขึ้นมา เพราะโดยภูมิหลังแล้ว ตัวผู้เขียนโปรนี้ขึ้นมานั้นทั้งนูบและกากมากๆ (noob เด้อ ไม่ใช่ nuke) ไม่เคยผ่านการเขียนโปรมาก่อนตอนสมัยเรียนอยู่มัธยม พึ่งมาเรียนเก็บเลเวลและสกิล (ชักเพ้อไปใหญ่แล้ว เอะอะก็ภาษาเกมส์) ตอนอยู่มหา'ลัย เทอมแรกก็ลุย C++ เลย (เพื่อนถามว่ามึงไม่ได้เรียน C ก่อนหรือวะ เลยตอบไปว่า เขาสอนแบบเมพขิงๆ 555+...หาข้ออ้างคุยอวดไปงั้นๆแหละ) ก็ถือว่าเป็นการเริ่มต้นที่ดี (และก็ไม่ได้ D เป็นของแถมด้วย) มาเทอมสองเรียน C# ผ่านทาง Visual Studio 2005 (ผมเข้าใจว่า C# คือเป็นรุ่นที่พัฒนาต่อยอดมาจาก C++ โดยเมื่อพัฒนาเสร็จแล้วจะมีชื่อเป็น C++++ แต่ผู้พัฒนาเขาขี้เกียจใช้ + หลายตัว เลยเกิดไอเดียว่าถ้าเกิด + เขียนติดกัน 4 ตัวก็เหมือนเครื่องหมาย # พอดี เลยกลายมาเป็นชื่อ C# แทน C++++...อันนี้เป็นความไร้สาระที่คิดขึ้นได้ตอนเพื่อนถามก่อนสอบว่า C# คืออะไร?)
เมื่อเรียนจนจบแล้วก็ประเดิมโปรเจค แรกๆเลยคือ เขียนโปรอะไรก็ได้ส่ง'จารย์ ถ้าเขียนง่ายๆได้ 15 แต่ถ้ายากๆหรือมีลูกเล่นเยอะก็ 30 นั่งคิดอยู่นานพอสมควรเพราะจะเขียนโปรอะไรดีที่ได้คะแนนเยอะ, รูปแบบหรือแนวคิดการทำงานไม่ซ้ำกับเพื่อนคนอื่น, ตัวเองกับเพื่อนในกลุ่ม(แค่สองคนเอง ไม่น่าจะเรียกว่ากลุ่มนะครับ'จารย์ น่าจะเรียกว่า คู่ ไปเลยดีกว่า) ต้องเขียนโปรได้และมีความรู้ความเข้าใจจากการเขียนโปรนี้ด้วย ตอนแรกกะเขียนโปรแปลงค่าเงินต่างๆ แต่'จารย์บอกว่าง่ายไป (มาคิดทีหลังมันก็โปรเขียนง่ายไปจริงๆ) เลยนั่งคิดโปรต่อไป ตอนแรกท้อว่าจะทำโปรไรดีที่มันไม่เกินความสามารถตัวเองมากไป แต่มันก็มีแต่โปรที่เพื่อนเขาพากันเขียนทั่วไป เช่น โปรฐานข้อมูล, โปรป้อนค่าและแสดงผล หรือโปรคำนวนค่าต่างๆ ซึ่ง 3 แบบนี้เจอบ่อย ยกเว้นบางคนที่กล้าแตกต่าง เช่น โปร Web Browser หรือ โปรเข้ารหัสในรูปแบบ ASCII จวนจะหมดเวลาคิดแล้ว เผอิญได้เคยอ่านบทความประมาณว่า "ครบรอบ 10 ปี Winamp" อะไรประมาณนี้มาก่อน เจอหน้าต่างโปร Winamp รุ่น Beta สมัยรุ่นบุกเบิก ก่อนมีเวอร์ชั่น 1 เลยเกิดความคิดได้ว่า "กูจะทำโปรฟังเพลง MP3 นี่หล่ะ" (ไอ้เพื่อนร่วมคู่มันติดธุระ เลยให้เผชิญชะตากรรมนั่งคิดโปรอยู่คนเดียว) ซึ่ง'จารย์อนุมัติแล้วว่าผ่าน
จนแล้วจนรอดก็สามารถเขียนส่ง'จารย์ได้แบบหวุดหวิด (โชคดีที่มีเว็บเขามีแนวทางการเขียนโปรมาก่อน เลยเขียนแล้วทำความเข้าใจไปด้วยว่าเขียนอย่างไรและทำงานอย่างไร...ซึ่งจะให้ Credit ภายหลัง) หน้าตาโปรแกรมเลยเป็นอย่างที่เห็นแหละครับ ซึ่งโปรนี้มีหลักการทำงานคือ นำไฟล์ MP3 ที่ป้อนค่าเข้าไปในโปร นำไปเก็บไว้ในหน่วยความจำของโปร แล้วส่งไปให้ตัว Component หลักที่เกี่ยวข้องกับการทำงานของระบบ MP3 (เขาพาใช้ ActiveX ตอนเขียนโปร เลยต้องใช้ตามเขาด้วย) ไฟล์ที่ว่านี้มีชื่อว่า MP3P.ocx ครับ โดยมีตัวถอดรหัสด้วย ไฟล์ที่ว่าคือ Xaudio.dll (ประมาณว่าใช้งานร่วมกันนั่นเอง) ทางกฏหมายว่าด้วยเกี่ยวกับลิขสิทธิ์ซอฟท์แวร์นี้ไม่ถือว่าผิดกฏหมายในการนำไปใช้ (ระบบการบีบอีดข้อมูลเสียง MP3 เป็นลิขสิทธิ์ของ Fraunhofer IIS บริษัททางประเทศเยอรมัน เขามีกฏหมายคุ้มครองว่าถ้าใครที่ทำการเขียนตัวถอดรหัสไฟล์ MP3 ขึ้นมาโดยที่ไม่มีรูปแบบขั้นตอนวิธีการจากต้นฉบับ ถือว่าอนุโลมให้พัฒนาและนำไปใช้ได้โดยห้ามเผยแพร่รูปแบบขั้นตอนวิธีการทำงาน แต่ถ้าใช้ตัวลิขสิทธิ์หรือตัวต้นฉบับต้องไปขอสิทธิ์การใช้งานก่อน ไม่งั้นถือว่าผิดกฏหมาย) เพราะตัวนี้เป็นตัวที่เขียนขึ้นมานี้เป็นตัวฟรีที่แจกให้ผู้พัฒนาโปรใช้กัน (ตัวทำงาน MP3 ที่มีชื่อเป็นอย่างมากก็คือตัว Lame ส่วนตัว Helix ไม่ค่อยใช้กันแพร่หลายมากนัก ยิ่งตัว Fraunhofer IIS ยิ่งแล้วใหญ่ จะใช้กันในผลงานทางมัลติมีเดียที่มีขนาดระดับตลาด อย่างในเกมส์ที่เขียนขึ้นมา)
ร่ายมาซะยาวเลยก็สรุปส่งท้ายเลยครับว่า
- สามารถนำไปใช้เพื่อเป็นแนวทางในการเขียนโปรแนวนี้ได้
- สามารถนำไปพัฒนาต่อได้
- สามารถนำไปใช้งานได้จริง แต่ว่ามันแดกทรัพยากรเครื่องเยอะ เพราะเป็นโปรที่เขียนขึ้นมาโดยไม่มีการเขียนระบบการจัดการทรัพยากรที่ใช้ในโปร จึงกลายเป็นว่าไปใช้ AIMP2 หรือ Winamp 5 ซะดีกว่า
[ Download ]
http://www.mediafire.com/?odymytj5mgv
ใครที่จะไปศึกษาเพิ่มเติมโดยไม่พึ่งไฟล์ Source Code ผมก็ไปดูได้นะครับที่
http://www.csharphelp.com/archives4/archive680.html
http://www.c-sharpcorner.com/UploadFile/mgold/PoormansIPod01172007144720PM/PoormansIPod.aspx
เพราะผมก็ศึกษามาจากที่นี้แหละ
และตัวถอดรหัส MP3 ที่ใช้
http://activex.moonvalley.com/download_activex_controls.htm
ปล. ข้อมูลอะไรผิดพลาดก็คอมเมนต์บอกได้นะครับ
ปอ. อย่าลืมติดตั้งตัว ActiveX MP3 ก่อนใช้นะครับ โดยให้คลิ้กติดตั้งผ่านทางไฟล์ชื่อ RegisterThisControl ไม่งั้นโปรแกรมจะทำงานไม่ได้
ปฮ. ผู้ที่ต้องการใช้งานก็ให้ไปเข้าตัว .EXE ที่ตำแหน่งของโฟรเดอร์ \mp3PlayerCSharp\mp3PlayerCSharp\bin\Debug จะมีไฟล์ชื่อ mp3PlayerCSharp.exe อยู่ครับ

#1 By chanaphan_CSs#14 (125.25.3.65) on 2009-05-19 12:06