Java 實現聲音播放程式
阿新 • • 發佈:2020-12-23
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; //是否迴圈播放 String[] choics = { "chimes.wav","start.wav" }; //聲音檔名陣列 URL file1 = getClass().getResource(choics[0]); //聲音檔案1 URL file2 = getClass().getResource(choics[1]); //聲音檔案2 AudioClip sound1 = java.applet.Applet.newAudioClip(file1); //聲音剪輯物件1 AudioClip sound2 = java.applet.Applet.newAudioClip(file2); //聲音剪輯物件2 AudioClip chosenClip = sound1; //選擇的聲音剪輯物件 JComboBox jcbFiles = new JComboBox(choics); //檔案選擇組合框 JButton playButton = new JButton("播放"); //播放按鈕 JButton loopButton = new JButton("迴圈播放"); //迴圈播放按鈕 JButton stopButton = new JButton("停止"); //停止播放按鈕 JLabel status = new JLabel("選擇播放檔案"); //狀態列標籤 JPanel controlPanel = new JPanel(); //控制面板用於包容按鈕 Container container = getContentPane(); //獲得視窗內容窗格 public AudioPlayDemo() { //構造器 super("聲音播放程式"); //呼叫父類構造器設定視窗標題欄 jcbFiles.setSelectedIndex(0); //設定組合框選擇項 jcbFiles.addItemListener(this); //為播放按鈕新增專案監聽器 //為播放按鈕、迴圈播放按鈕、停止播放按鈕新增動作監聽器 playButton.addActionListener(this); loopButton.addActionListener(this); stopButton.addActionListener(this); stopButton.setEnabled(false); //設定停止播放按鈕不可用 //把播放按鈕、迴圈播放按鈕、停止播放按鈕加入控制面板 controlPanel.add(playButton); controlPanel.add(loopButton); controlPanel.add(stopButton); //把檔案選擇組合框、控制面板、狀態列標籤加入到視窗內容窗格 container.add(jcbFiles,BorderLayout.NORTH); container.add(controlPanel,BorderLayout.CENTER); container.add(status,BorderLayout.SOUTH); setSize(300,130); //設定視窗大小 setVisible(true); //設定視窗可視 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉視窗時退出程式 } //檔案選擇組合框事件處理 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物件為空,則直接返回 } Object source = event.getSource(); //獲取使用者洗滌啟用的按鈕 //播放按鈕事件處理 if (source == playButton) { stopButton.setEnabled(true); //設定停止播放按鈕可用 loopButton.setEnabled(true); //設定迴圈播放按鈕可用 chosenClip.play(); //播放選擇的聲音剪輯物件一次 status.setText("正在播放"); //設定狀態列資訊 } //迴圈播放按鈕事件處理 if (source == loopButton) { looping = true; chosenClip.loop(); //迴圈播放選擇的聲音剪輯物件 loopButton.setEnabled(false); //設定迴圈播放按鈕不可用 stopButton.setEnabled(true); //設定停止播放按鈕可用 status.setText("正在迴圈播放"); //設定狀態列資訊 } //停止播放按鈕事件處理 if (source == stopButton) { if (looping) { looping = false; chosenClip.stop(); //停止迴圈播放選擇的聲音剪輯物件 loopButton.setEnabled(true); //設定迴圈播放按鈕可用 } else { chosenClip.stop(); //停止播放選擇的聲音剪輯物件 } stopButton.setEnabled(false); //設定迴圈播放按鈕可用 status.setText("停止播放"); //設定狀態列資訊 } } public static void main(String s[]) { new AudioPlayDemo(); //建立AudioPlayDemo物件 } }
以上就是Java 實現聲音播放程式的詳細內容,更多關於Java 聲音播放的資料請關注我們其它相關文章!