1. 程式人生 > 程式設計 >Java 實現聲音播放程式

Java 實現聲音播放程式

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 實現聲音播放程式

以上就是Java 實現聲音播放程式的詳細內容,更多關於Java 聲音播放的資料請關注我們其它相關文章!