亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Java怎么實現一個聲音播放功能

發布時間:2020-12-23 13:45:29 來源:億速云 閱讀:292 作者:Leah 欄目:開發技術

利用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對象
  }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

循化| 大洼县| 凤山县| 三门县| 诸暨市| 鄂托克旗| 东阿县| 巴林左旗| 阿勒泰市| 丰台区| 十堰市| 岫岩| 新龙县| 黔西县| 丹棱县| 石嘴山市| 平江县| 台州市| 博兴县| 乐山市| 哈密市| 永春县| 荆州市| 平江县| 勐海县| 邛崃市| 祥云县| 宝丰县| 鄂托克前旗| 昭平县| 桦南县| 东乌珠穆沁旗| 唐河县| 新巴尔虎左旗| 太仆寺旗| 伊通| 永修县| 洮南市| 西乌珠穆沁旗| 米脂县| 烟台市|