播放音の種類
复制番号代番号次のように:
java.io.ファイルをインポートします。
インポート java.io.IOException;
インポート javax.sound.sampled.AudioFormat;
インポート javax.sound.sampled.AudioInputStream;
インポート javax.sound.sampled.AudioSystem;
インポート javax.sound.sampled.DataLine;
インポート javax.sound.sampled.SourceDataLine;
//播放音の種類
public class PlaySounds extends Thread {
プライベート文字列ファイル名。
public PlaySounds(String wavfile) {
ファイル名 = System.getProperty("user.dir")+wavfile;
}
public void run() {
ファイル soundFile = 新しいファイル(ファイル名);
AudioInputStream audioInputStream = null;
試す {
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (例外 e1) {
e1.printStackTrace();
戻る;
}
AudioFormat 形式 = audioInputStream.getFormat();
SourceDataLine オーライン = null;
DataLine.Info 情報 = new DataLine.Info(SourceDataLine.class, format);
試す {
auline = (SourceDataLine) AudioSystem.getLine(info);
auline.open(フォーマット);
} catch (例外 e) {
e.printStackTrace();
戻る;
}
auline.start();
int nBytesRead = 0;
//これは缓冲です
byte[] abData = 新しいバイト[512];
試す {
while (nBytesRead != -1) {
nBytesRead = audioInputStream.read(abData, 0, abData.length);
if (nBytesRead >= 0)
auline.write(abData, 0, nBytesRead);
}
} キャッチ (IOException e) {
e.printStackTrace();
戻る;
} ついに {
オーライン.ドレイン();
auline.close();
}
}
}
以下は Java 播放音のアプリケーションプログラムで、単回播放音、循環播放音を行うことができます。
MusicPaly myMusicPlay = new MusicPlay(getClass().getResource("/music/button.wav"));
myMusicPlay.start();//播放一次
myMusicPlay .stop();// 停止
myMusicPlay .continuousStart();//循環环播放
myMusicPlay .continuousStop();// 停止
复制番号代番号次のように:
// 文件名:MuiscPlay.java
java.io.* をインポートします。
java.net.URLをインポートします。
sun.audio.* をインポートします。
/**
*
* @著者ウーフイウェン
* 播放音声文件,产生音效
*/
パブリック クラス MusicPlay {
プライベート AudioStream として; //单次播放音声用
ContinuousAudioDataStream cas;//循環播放音
// 构造関数数
public MusicPlay(URL url)
{
試す {
//打开一音声文件流作為入力
as = 新しい AudioStream (url.openStream());
} catch (FileNotFoundException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} キャッチ (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
// 一次播放開始
public void start()
{
if( as==null ){
System.out.println("AudioStream オブジェクトが作成されていません!");
戻る;
}それ以外{
AudioPlayer.player.start (as);
}
}
// 一次播放停止
パブリックボイドストップ()
{
if( as==null ){
System.out.println("AudioStream オブジェクトが作成されていません!");
戻る;
}それ以外{
AudioPlayer.player.stop(as);
}
}
// 循環放送開始
public voidContinuousStart()
{
// AudioData ソースを作成します。
AudioData データ = null;
試す {
データ = as.getData();
} キャッチ (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
// ContinuousAudioDataStream を作成します。
cas = 新しいContinuousAudioDataStream (データ);
// オーディオを再生します。
AudioPlayer.player.start(cas);
}
// 循環放送停止
public voidContinuousStop()
{
if(cas != null)
{
AudioPlayer.player.stop (cas);
}
}
}