Java Sound API 音频播放代码解析:无事件监听与处理
Java Sound API 音频播放代码解析:无事件监听与处理
以下代码使用Java Sound API实现了简单的音频播放功能,代码中定义了名为Sound的类,包含加载、播放音频文件的功能。
package cn.tedu.bird;
import javax.sound.sampled.*;
public class Sound {
byte[] data;
AudioFormat format;
int length;
public Sound(String name) throws Exception {
AudioInputStream in =
AudioSystem.getAudioInputStream(
getClass().getResource(name));
format = in.getFormat();
length = (int)in.getFrameLength();
data = new byte[length];
in.read(data);
in.close();
}
public void play(){
Runnable runner = new Runnable(){
public void run() {
try {
Clip clip = AudioSystem.getClip();
clip.open(format, data, 0, length);
clip.start();
clip.drain();
clip.stop();
clip.close();
} catch (LineUnavailableException e) {
e.printStackTrace();
}
}
};
new Thread(runner).start();
}
}
代码功能解析
- 加载音频文件:
Sound类构造函数接收文件名作为参数,通过AudioSystem.getAudioInputStream()方法加载音频文件,并获取音频格式、长度以及音频数据。 - 播放音频文件:
play()方法创建Runnable线程,在线程中使用Clip对象进行音频播放。
代码中没有事件监听与处理
代码中没有使用事件监听和处理机制。音频播放过程是同步的,代码直接调用 clip.start() 方法开始播放,并不会监听音频播放过程中的任何事件。
总结
以上代码展示了使用 Java Sound API 进行简单音频播放的功能。代码中没有涉及事件监听和处理机制,如果需要监听音频播放过程中的事件(例如播放完成、播放进度等),需要使用 Clip 对象的 addLineListener() 方法添加监听器,并在监听器中处理相应的事件。
原文地址: http://www.cveoy.top/t/topic/fYgu 著作权归作者所有。请勿转载和采集!