Page 58 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 58
12-48 การโปรแกรมค อมพิวเตอร์ขั้นส ูง
2.2 เมธอด getAudioClip() การเล่นไฟล์เสียงมากกว่าหนึ่งครั้งหรือการเริ่มและหยุดเล่นไฟล์เสียง จะต้อง
โหลดไฟล์เสียงไปจัดเก็บไว้ที่ออดิโอคลิปออบเจ็กต์ (audioClip object) โดยใช้เมธอด getAudioClip() ซึ่งอยู่ใน
คลาส Applet ของแพ็กเกจ java.awt และเมธอด getAudioClip() จะมีค ่าอ าร์กิวเมนต์จำ�นวน 2 ค่า คือ ตำ�แหน่ง
ที่อ ยู่หรือ URL และชื่อไฟล์เสียงแ ละไดเรกทอรีย่อยที่จ ัดเก็บไฟล์เสียงน ั้น
ตัวอย่างการเขียนป ระโยคค ำ�สั่งเพื่อสร้างอ อบเจ็กต์แ ละโหลดไฟล์เสียง เป็นด ังนี้
AudioClip aClip = getAudioClip(getCodeBase(), "audio/birthday.au");
จากป ระโยคค �ำ สั่งข ้างต ้นไฟลเ์ สียงไดจ้ ัดเก็บไวใ้ นไดเรกทอรชี ื่อ audio และเมือ่ ไดส้ รา้ งอ อดิโอค ลปิ อ อบเจก็ ต์
เรียบร้อยแล้ว จึงสามารถจ ะใช้เมธอด play() เพื่อเรียกแ ละเล่นไฟล์คลิปเสียงได้
2.3 การใช้เมธอดเพ่ือควบคุมการเล่นเสียง แม้ว่าเมธอด play() จะเป็นวิธีการที่ง่ายในการโหลดและเล่น
ไฟล์เสียง แต่จะไม่ส ามารถค วบคุมเสียงได้ เพราะเมธอด play() เป็นคำ�สั่งก ารเล่นไฟล์เสียงต ั้งแต่เริ่มต ้นจ นห มดไฟล์
คือ เล่นทั้งไฟล์ ดังนั้น เมื่อต้องการจ ะควบคุมการเล่นไฟล์เสียงต้องใช้อ อดิโอค ลิปอ อบเจ็กต์ และเมธอดสำ�หรับก าร
ควบคุมออบเจ็กต์ คือ เมธอด stop() และเมธอด loop()
การใช้งานเมธอด stop() ใช้สำ�หรับการหยุดเล่นไฟล์เสียง และเมธอด loop() ใช้สำ�หรับการเล่นไฟล์คลิป
เสียงแ บบเล่นวนซ ้ำ� ๆ กันโดยไม่มีก ารหยุดเล่น
3. การเขียนโปรแกรมจ าวาแอพเพลต็ เพ่อื โหลดแ ละเล่นค ลปิ เสียง
โปรแกรมจาวาแอพเพล็ต SoundApplet1.java เพื่อเล่นไฟล์คลิปเสียง spacemusic.wav ซึ่งได้จัดเก็บ
ไฟล์เสียงและโปรแกรมจาวาแ อพเพล็ต SoundApplet1.class ไว้ที่ไดเรกทอรีเดียวกัน
1) โปรแกรมจ าวาแอพเพล็ต SoundApplet1.java มีรายล ะเอียดด ังนี้
SoundApplet1.java
1 import java.awt.*;
2 import java.applet.*;
3 import java.net.*;
4 public class SoundApplet1 extends Applet
5{
6 Button button;
7 public void init()
8 {
9 BorderLayout layout = new BorderLayout();
10 setLayout(layout);
11 Font font = new Font("TimesRoman", Font.BOLD, 20);
12 setFont(font);
13 button = new Button("Play Sound");
14 add("Center", button);