Java 實(shí)現(xiàn)聲音播放程序
package newpackage1;import java.applet.AudioClip;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.net.*;// 聲音播放程序public class AudioPlayDemo extends JFrame implements ActionListener, ItemListener { boolean looping = false; //是否循環(huán)播放 String[] choics = { 'chimes.wav', 'start.wav' }; //聲音文件名數(shù)組 URL file1 = getClass().getResource(choics[0]); //聲音文件1 URL file2 = getClass().getResource(choics[1]); //聲音文件2 AudioClip sound1 = java.applet.Applet.newAudioClip(file1); //聲音剪輯對(duì)象1 AudioClip sound2 = java.applet.Applet.newAudioClip(file2); //聲音剪輯對(duì)象2 AudioClip chosenClip = sound1; //選擇的聲音剪輯對(duì)象 JComboBox jcbFiles = new JComboBox(choics); //文件選擇組合框 JButton playButton = new JButton('播放'); //播放按鈕 JButton loopButton = new JButton('循環(huán)播放'); //循環(huán)播放按鈕 JButton stopButton = new JButton('停止'); //停止播放按鈕 JLabel status = new JLabel('選擇播放文件'); //狀態(tài)欄標(biāo)簽 JPanel controlPanel = new JPanel(); //控制面板用于包容按鈕 Container container = getContentPane(); //獲得窗口內(nèi)容窗格 public AudioPlayDemo() { //構(gòu)造器 super('聲音播放程序'); //調(diào)用父類構(gòu)造器設(shè)置窗口標(biāo)題欄 jcbFiles.setSelectedIndex(0); //設(shè)置組合框選擇項(xiàng) jcbFiles.addItemListener(this); //為播放按鈕添加項(xiàng)目監(jiān)聽(tīng)器 //為播放按鈕、循環(huán)播放按鈕、停止播放按鈕添加動(dòng)作監(jiān)聽(tīng)器 playButton.addActionListener(this); loopButton.addActionListener(this); stopButton.addActionListener(this); stopButton.setEnabled(false); //設(shè)置停止播放按鈕不可用 //把播放按鈕、循環(huán)播放按鈕、停止播放按鈕加入控制面板 controlPanel.add(playButton); controlPanel.add(loopButton); controlPanel.add(stopButton); //把文件選擇組合框、控制面板、狀態(tài)欄標(biāo)簽加入到窗口內(nèi)容窗格 container.add(jcbFiles, BorderLayout.NORTH); container.add(controlPanel, BorderLayout.CENTER); container.add(status, BorderLayout.SOUTH); setSize(300, 130); //設(shè)置窗口大小 setVisible(true); //設(shè)置窗口可視 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時(shí)退出程序 } //文件選擇組合框事件處理 public void itemStateChanged(ItemEvent e) { if (jcbFiles.getSelectedIndex() == 0) { chosenClip = sound1; } else { chosenClip = sound2; } } //按鈕事件處理 public void actionPerformed(ActionEvent event) { if (chosenClip == null) { status.setText('聲音未載入'); return; //如果AudioClip對(duì)象為空,則直接返回 } Object source = event.getSource(); //獲取用戶洗滌激活的按鈕 //播放按鈕事件處理 if (source == playButton) { stopButton.setEnabled(true); //設(shè)置停止播放按鈕可用 loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用 chosenClip.play(); //播放選擇的聲音剪輯對(duì)象一次 status.setText('正在播放'); //設(shè)置狀態(tài)欄信息 } //循環(huán)播放按鈕事件處理 if (source == loopButton) { looping = true; chosenClip.loop(); //循環(huán)播放選擇的聲音剪輯對(duì)象 loopButton.setEnabled(false); //設(shè)置循環(huán)播放按鈕不可用 stopButton.setEnabled(true); //設(shè)置停止播放按鈕可用 status.setText('正在循環(huán)播放'); //設(shè)置狀態(tài)欄信息 } //停止播放按鈕事件處理 if (source == stopButton) { if (looping) {looping = false;chosenClip.stop(); //停止循環(huán)播放選擇的聲音剪輯對(duì)象loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用 } else {chosenClip.stop(); //停止播放選擇的聲音剪輯對(duì)象 } stopButton.setEnabled(false); //設(shè)置循環(huán)播放按鈕可用 status.setText('停止播放'); //設(shè)置狀態(tài)欄信息 } } public static void main(String s[]) { new AudioPlayDemo(); //創(chuàng)建AudioPlayDemo對(duì)象 }}
以上就是Java 實(shí)現(xiàn)聲音播放程序的詳細(xì)內(nèi)容,更多關(guān)于Java 聲音播放的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 如何通過(guò)vscode運(yùn)行調(diào)試javascript代碼2. JAVA抽象類及接口使用方法解析3. 教你JS更簡(jiǎn)單的獲取表單中數(shù)據(jù)(formdata)4. 測(cè)試模式 - XSL教程 - 55. python b站視頻下載的五種版本6. JavaScript設(shè)計(jì)模式之策略模式實(shí)現(xiàn)原理詳解7. python如何寫個(gè)俄羅斯方塊8. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)9. Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn)10. 本站用的rss輸出
