Skip to content

เล่นไฟล์เสียงใน Python ด้วย Pyglet

วันนี้ผมได้ไปเปิดเพลง mp3 ในคอม แล้วมีคำถามเข้ามาในหัวผมอีกแล้ว ว่า "เราสามารถเขียนโปรแกรมเล่นไฟล์เสียง mp3 ogg WMAพวกนี้บน Python ได้ไหม" ผมได้ไปค้นในอินเทอร์เน็ต ได้คำตอบว่า เราสามารถใช้โมดูล Pyglet ในการเล่นไฟล์เสียงใน Python ได้อีกด้วยครับ

โมดูล Pyglet เป็นโมดูลสำหรับสร้างเกมบน Python เราสามารถนำความสามารถในการเล่นไฟล์เสียง .mp3 .ogg .WMA ของโมดูล Pyglet มาใช้งานเล่นไฟล์เสียงใน Python ได้ครับ
องค์ประกอบที่ต้องติดตั้งเพื่อเล่นไฟล์เสียงใน Python

  • Pyglet อ่านวิธีติดตั้งได้จากบทความ พัฒนาเกมบน Python ด้วย pyglet
  • ในการเล่นไฟล์เสียงด้วย Pyglet นี้ ผู้อ่านต้องติดตั้ง audio decoding library ที่มีชื่อว่า AVbin
  • ไฟล์เสียง .mp3 .ogg .WMA จะเป็นไฟล์เพลงก็ได้ครับ

ใน Pyglet จะมี api ที่ชื่อว่า pyglet.media.Player ซึ่งเชื่อมต่อกับ AVbin เพื่อ decoding ไฟล์เสียง .mp3 .ogg .WMA ใน Python ครับ
มาเริ่มลงมือเขียนโปรแกรมเล่นไฟล์เสียงใน Python กันเลยครับ

import pyglet
music = pyglet.resource.media('เพลงคิดถึงเพื่อนจัง.mp3') #ดึงไฟล์เสียงเข้ามา
music.play() #เล่นไฟล์เสียง หากต้องการหยุดใช้คำสั่ง music.pause() และอื่น ๆ ดูเพิ่มเติมนะครับ
print("Playing")
input("Enter to exit")

เมื่อรันแล้วจะได้ยินเสียงเพลงดังออกมา นอกจากนั้นเรายังสามารถ ควบคุม พัก หยุด เสียง และสามารถใช้ความสามารถนี้ในการ Streaming ได้อีกด้วยครับ รายละเอียดเพิ่มเติมอ่านได้ที่ http://www.pyglet.org/doc/programming_guide/controlling_playback.html

ผมขอตัวไปฟังเพลงก่อนนะครับ
ดนตรีทำให้ชีวิตมีสีสัน ^_^
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories game-developmentTags

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น

3 thoughts on “เล่นไฟล์เสียงใน Python ด้วย Pyglet

  1. Rukpong

    "ใน Pyglet จะมี api ที่ชื่อว่า pyglet.media.Player ซึ่งเชื่อมต่อกับ AVbin เพื่อ decoding ไฟล์เสียง .mp3 .ogg .WMA ใน Python ครับ"

    จะเชื่อมต่อกับ AVbin ยังไงครับ

    Reply
    1. wannaphong

      ไม่ต้องเชื่อมต่ออะไรครับ แค่ลง AVbin เท่านั้นครับ รู้สึกว่า Pyglet จะเรียกใช้งาน AVbin ผ่านโมดูล os ไม่ต้องตั้งค่าอะไรครับ

      Reply
  2. suttikarn

    แอดมินยัง active อยู่ปล่าวครับ ขอสอบถามเกี่ยวกับ pyglet หน่อยครับ

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *