最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java播放聲音類和一個簡單示例

 更新時間:2014年03月07日 15:40:40   作者:  
這篇文章主要介紹了一個java播放聲音類和一個java播放聲音的應用程序,應用程序可以單次播放聲音、循環(huán)播放聲音,需要的朋友可以參考下


播放聲音的類

復制代碼 代碼如下:

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;

//播放聲音的類
public class PlaySounds extends Thread {

 private String filename;
 public PlaySounds(String wavfile) {

  filename = System.getProperty("user.dir")+wavfile;
 }
 public void run() {

  File soundFile = new File(filename);

  AudioInputStream audioInputStream = null;
  try {
   audioInputStream = AudioSystem.getAudioInputStream(soundFile);
  } catch (Exception e1) {
   e1.printStackTrace();
   return;
  }
  AudioFormat format = audioInputStream.getFormat();
  SourceDataLine auline = null;
  DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
  try {
   auline = (SourceDataLine) AudioSystem.getLine(info);
   auline.open(format);
  } catch (Exception e) {
   e.printStackTrace();
   return;
  }
  auline.start();
  int nBytesRead = 0;
  //這是緩沖
  byte[] abData = new byte[512];
  try {
   while (nBytesRead != -1) {
    nBytesRead = audioInputStream.read(abData, 0, abData.length);
    if (nBytesRead >= 0)
     auline.write(abData, 0, nBytesRead);
   }
  } catch (IOException e) {
   e.printStackTrace();
   return;
  } finally {
   auline.drain();
   auline.close();
  }
 } 
}


下面是一個java播放聲音的應用程序,可以單次播放聲音、循環(huán)播放聲音

MusicPaly myMusicPlay = new MusicPlay(getClass().getResource("/music/button.wav"));
myMusicPlay.start();//播放一次
myMusicPlay .stop();//停止
myMusicPlay .continuousStart();//循環(huán)播放
myMusicPlay .continuousStop();//停止

復制代碼 代碼如下:

// 文件名:MuiscPlay.java
import java.io.*;
import java.net.URL;
import sun.audio.*;

/**
*
* @author wuhuiwen
* 播放音頻文件,產生音效
*/
public class MusicPlay {
    private AudioStream  as; //單次播放聲音用
    ContinuousAudioDataStream cas;//循環(huán)播放聲音
    // 構造函數(shù)
    public MusicPlay(URL url)
    {
        try {
            //打開一個聲音文件流作為輸入
            as = new AudioStream (url.openStream());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    // 一次播放 開始
    public void start()
    {
        if( as==null ){
            System.out.println("AudioStream object is not created!");
            return;
        }else{
            AudioPlayer.player.start (as);
        }
    }
    // 一次播放 停止
    public void stop()
    {
        if( as==null ){
            System.out.println("AudioStream object is not created!");
            return;
        }else{
            AudioPlayer.player.stop(as);
        }       
    }
    // 循環(huán)播放 開始
    public void continuousStart()
    {
        // Create AudioData source.
        AudioData data = null;
        try {
            data = as.getData();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // Create ContinuousAudioDataStream.
        cas = new ContinuousAudioDataStream (data);

        // Play audio.
        AudioPlayer.player.start(cas);
    }
    // 循環(huán)播放 停止
    public void continuousStop()
    {
        if(cas != null)
        {
            AudioPlayer.player.stop (cas);
        }   
    }

}

相關文章

  • Java語言字典序排序算法解析及代碼示例

    Java語言字典序排序算法解析及代碼示例

    這篇文章主要介紹了Java語言字典序排序算法解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java使用歸并刪除法刪除二叉樹中節(jié)點的方法

    java使用歸并刪除法刪除二叉樹中節(jié)點的方法

    這篇文章主要介紹了java使用歸并刪除法刪除二叉樹中節(jié)點的方法,實例分析了java二叉樹算法的相關操作技巧,需要的朋友可以參考下
    2015-05-05
  • SpringBoot中的三種應用事件處理機制詳解

    SpringBoot中的三種應用事件處理機制詳解

    在項目開發(fā)中,組件間的松耦合設計至關重要,應用事件處理機制作為觀察者模式的一種實現(xiàn),允許系統(tǒng)在保持模塊獨立性的同時實現(xiàn)組件間的通信,SpringBoot延續(xù)并增強了Spring框架的事件機制,提供了多種靈活的事件處理方式,本文給大家介紹了SpringBoot中的三種應用事件處理機制
    2025-04-04
  • 基于javascript實現(xiàn)獲取最短路徑算法代碼實例

    基于javascript實現(xiàn)獲取最短路徑算法代碼實例

    這篇文章主要介紹了基于javascript實現(xiàn)獲取最短路徑算法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java自定義異常簡單示例

    Java自定義異常簡單示例

    使用Java內置的異常類可以描述在編程時出現(xiàn)的大部分異常情況,除此之外用戶還可以自定義異常,下面這篇文章主要給大家介紹了關于Java自定義異常的相關資料,需要的朋友可以參考下
    2023-04-04
  • Java中finalize()詳解及用法

    Java中finalize()詳解及用法

    這篇文章主要介紹了Java中finalize()詳解及用法的相關資料,final是Java的關鍵字,它所表示的是“這部分是無法修改的”,需要的朋友可以參考下
    2017-03-03
  • 分布式醫(yī)療掛號系統(tǒng)EasyExcel導入導出數(shù)據(jù)字典的使用

    分布式醫(yī)療掛號系統(tǒng)EasyExcel導入導出數(shù)據(jù)字典的使用

    這篇文章主要為大家介紹了分布式醫(yī)療掛號系統(tǒng)EasyExcel導入導出數(shù)據(jù)字典的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Spring Boot+Shiro實現(xiàn)一個Http請求的Basic認證

    Spring Boot+Shiro實現(xiàn)一個Http請求的Basic認證

    本文向向大家仔細的介紹了如何使用Shiro實現(xiàn)一個Http請求的Basic認證,有此需求的朋友可以參考下本文
    2021-06-06
  • Java 讀取外部資源的方法詳解及實例代碼

    Java 讀取外部資源的方法詳解及實例代碼

    這篇文章主要介紹了Java 讀取外部資源的方法詳解及實例代碼的相關資料,經常有讀取外部資源的要求,如配置文件等等需要讀取,需要的朋友可以參考下
    2017-03-03
  • JAVA生成xml文件簡單示例

    JAVA生成xml文件簡單示例

    這篇文章主要介紹了JAVA生成xml文件的相關資料,在Java中可以使用DOM或者JDOM來生成XML文件,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07

最新評論

嫩江县| 铜山县| 黄梅县| 曲阳县| 庄河市| 重庆市| 武威市| 康马县| 吉安市| 南召县| 麟游县| 华宁县| 东安县| 鹰潭市| 永顺县| 阿尔山市| 阜阳市| 禄劝| 阿克| 栾川县| 奇台县| 古田县| 泾源县| 甘洛县| 大厂| 平舆县| 黑河市| 奈曼旗| 镇坪县| 德庆县| 阿城市| 通城县| 琼海市| 屯昌县| 滨海县| 沅江市| 永仁县| 合水县| 拜城县| 常山县| 突泉县|