Java 音频播放类 - Sound 类实现音频文件播放
这段代码定义了一个名为 'Sound' 的 Java 类,用于播放音频。它包含以下属性:
- 'byte[] data':音频数据
- 'AudioFormat format':音频格式
- 'int length':音频长度
类中包含一个构造函数,可以传入音频文件的名称,然后读取音频文件的数据、格式和长度。
类中还包含一个 'play()' 方法,用于播放音频。在该方法中,首先创建了一个 'Runnable' 对象,用于在新线程中执行播放操作。然后,创建了一个新线程,并将该 'Runnable' 对象传入其中。在 'Runnable' 对象的 'run()' 方法中,首先创建了一个 'Clip' 对象,然后将音频数据、格式和长度传入 'Clip' 对象中,最后播放音频。在播放完成后,调用 'stop()' 和 'close()' 方法释放资源。
代码中还包括一行注释,说明可以使用线程池来执行播放操作,但是该行注释被注释掉了。
以下是代码示例:
public class Sound {
	byte[] data;
	AudioFormat format;
	int length;
	
	//static Executor pool = Executors.newCachedThreadPool();
	
	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();
				}
			}
		};
		//pool.execute(runner);
		new Thread(runner).start();
	}
}
该代码示例展示了如何使用 'Sound' 类播放音频文件。你可以将该代码复制到你的项目中,并使用 'Sound' 类来播放音频文件。
原文地址: https://www.cveoy.top/t/topic/ozMZ 著作权归作者所有。请勿转载和采集!