使用Java怎么編寫一個聲音播放程序-創(chuàng)新互聯(lián)

使用Java怎么編寫一個聲音播放程序?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

十載的陽春網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整陽春建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“陽春網(wǎng)站設(shè)計(jì)”,“陽春網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
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); //聲音剪輯對象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("循環(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)聽器
    //為播放按鈕、循環(huán)播放按鈕、停止播放按鈕添加動作監(jiān)聽器
    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)閉窗口時退出程序
  }
  //文件選擇組合框事件處理
  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); //設(shè)置停止播放按鈕可用
      loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用
      chosenClip.play(); //播放選擇的聲音剪輯對象一次
      status.setText("正在播放"); //設(shè)置狀態(tài)欄信息
    }

    //循環(huán)播放按鈕事件處理
    if (source == loopButton) {
      looping = true;
      chosenClip.loop(); //循環(huán)播放選擇的聲音剪輯對象
      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)播放選擇的聲音剪輯對象
        loopButton.setEnabled(true); //設(shè)置循環(huán)播放按鈕可用
      } else {
        chosenClip.stop(); //停止播放選擇的聲音剪輯對象
      }
      stopButton.setEnabled(false); //設(shè)置循環(huán)播放按鈕可用
      status.setText("停止播放"); //設(shè)置狀態(tài)欄信息
    }
  }

  public static void main(String s[]) {
    new AudioPlayDemo(); //創(chuàng)建AudioPlayDemo對象
  }
}

看完上述內(nèi)容,你們掌握使用Java怎么編寫一個聲音播放程序的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

文章標(biāo)題:使用Java怎么編寫一個聲音播放程序-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article30/dsgepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、用戶體驗(yàn)、做網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司