บทความนี้แชร์รหัสเฉพาะสำหรับ javax.sound เพื่อรับรู้การเล่นเสียงอย่างง่ายสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
/ ** * @see * @author al_assad [email protected] * @date 17 พฤศจิกายน 2016 เวลา 6:27:59 น. * @version v1.0 * คำอธิบาย: เครื่องเล่นเสียงง่าย ๆ นำเข้า Java.io.*; Public Class MusicPlayer {Private String MusicPath; // ไฟล์เสียงบูลีนผันผวนส่วนตัว run = true; // บันทึกว่าเสียงเล่นเธรดส่วนตัว MainThread; // เธรดงานสำหรับการเล่น AudioInputStream AudiOSTream; Audioformat ส่วนตัว แหล่งที่มาส่วนตัว sourcedataline; Public MusicPlayer (String MusicPath) {this.musicPath = MusicPath; prefetch (); } // การเตรียมข้อมูลเป็นโมฆะส่วนตัว prefetch () {ลอง {// รับสตรีมการป้อนข้อมูลเสียง Audiostream = Audiosystem.getAudioInputStream (ไฟล์ใหม่ (MusicPath)); // รับวัตถุที่เข้ารหัสของ Audioformat = Audiostream.getFormat (); // การบรรจุข้อมูลเสียง dataline.info datalineInfo = ใหม่ dataline.info (sourcedatataline.class, audioformat, Audiosystem.Not_specified); // สร้างแถวข้อมูลต้นฉบับโดยใช้คลาสข้อมูลหลังจากห่อข้อมูลเสียงและทำหน้าที่เป็นแหล่งที่มาแหล่งที่มาของเครื่องผสม = (sourcedataline) Audiosystem.getLine (DatalineInfo); SourceDataline.Open (Audioformat); sourcedataline.start (); } catch (unsupportedaudiofileexception ex) {ex.printstacktrace (); } catch (lineUnavailableException ex) {ex.printStackTrace (); } catch (ioexception ex) {ex.printstacktrace (); }} // destructor: ปิดสตรีมการอ่านเสียงและสายข้อมูลที่ได้รับการป้องกันช่องว่างสรุป () โยนได้ {super.finalize (); sourcedataline.drain (); sourcedataline.close (); Audiostream.close (); } // เล่นเสียง: ตั้งค่าว่าจะวนซ้ำโมฆะส่วนตัว playmusic (boolean loop) พ่น InterruptedException {ลอง {ถ้า (วน) {ในขณะที่ (จริง) {playmusic (); }} else {playmusic (); // ล้างสายข้อมูลและปิด sourcedataline.drain (); sourcedataline.close (); Audiostream.close (); }} catch (ioexception ex) {ex.printstacktrace (); }} private void playmusic () {ลอง {ซิงโครไนซ์ (นี่) {run = true; } // อ่านสตรีมข้อมูลเสียงผ่านสายข้อมูลและส่งไปยังเครื่องผสม // กระบวนการส่งข้อมูลกระแสข้อมูล: AudioInputStream -> SourcedAtaline; AudiOSTream = Audiosystem.getAudioInputStream (ไฟล์ใหม่ (MusicPath)); จำนวน int; Byte Tempbuff [] = นิวไบต์ [1024]; ในขณะที่ ((count = audiostream.read (tempbuff, 0, tempbuff.length))! = -1) {ซิงโครไนซ์ (นี่) {ในขณะที่ (วิ่ง) รอ (); } sourcedataline.write (tempbuff, 0, count); }} catch (unsupportedaudiofileexception ex) {ex.printstacktrace (); } catch (ioexception ex) {ex.printstacktrace (); } catch (interruptedException ex) {ex.printStackTrace (); }} // หยุดการเล่นเสียงส่วนตัวโมฆะ stopMusic () {ซิงโครไนซ์ (นี่) {run = false; แจ้งเตือน (); }} // ต่อไปเล่นเพลงโมฆะส่วนตัว continueMusic () {ซิงโครไนซ์ (นี่) {run = true; แจ้งเตือน (); }} // วิธีการควบคุมการโทรภายนอก: สร้างเธรดหลักเสียง; Public Void Start (Boolean Loop) {mainThread = เธรดใหม่ (ใหม่ runnable () {public void run () {ลอง {playmusic (loop);} catch (interruptedException e) {e.printstacktrace ();}}}); mainthread.start (); } // วิธีการควบคุมการโทรภายนอก: หยุดชั่วคราวเธรดเสียงโมฆะสาธารณะหยุด () {เธรดใหม่ (ใหม่ runnable () {public void run () {stopMusic ();}}) เริ่มต้น (); } // วิธีการควบคุมการโทรภายนอก: ดำเนินการต่อเธรดเสียงโมฆะสาธารณะต่อเนื่อง () {เธรดใหม่ (ใหม่ runnable () {public void run () {continueMusic ();}}) เริ่มต้น (); } // ทดสอบโมฆะสาธารณะคงที่หลัก (String [] args) พ่น InterruptedException {MusicPlayer Player = New MusicPlayer ("BGM/1.WAV"); // สร้างเครื่องเล่นเพลง Player Player.start (จริง); // เริ่มเล่นในรูปแบบลูปผู้เล่น (เท็จ) ไม่เล่น timeunit.seconds.sleep (5); player.stop (); // หยุดการเล่นเสียงชั่วคราว TimeUnit.seconds.sleep (4); player.continues (); // เริ่มเล่นเสียง}} ต่อไป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น