[英]Java: Playing WAV sounds
我正在尝试构建一个需要播放各种鼓声部件(低音鼓,小鼓等)的WAV声音样本的java鼓机。 因为我需要以紧凑的顺序播放声音,所以我需要高性能。 目前我正在使用:
import sun.audio.*;
import java.io.*;
public class MusicPlayer {
private String filename;
public MusicPlayer(String filename) {
this.filename = filename;
}
public void play() {
try {
InputStream in = new FileInputStream(filename);
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);
} catch (IOException e) {
e.printStackTrace();
}
}
}
如下所示: 我如何用Java播放声音?
虽然它确实比MP3 + Javazoom jLayer工作得更快,但它仍然听起来不稳定,当我做cpu密集的东西,如调整应用程序窗口的大小。
关于提高性能的任何提示?
BTW。 我还读过sun.audio.*
已被弃用。 有类似的解决方案吗?
您是否看过Java Media Framework(JMF) :
Java Media Framework API(JMF)支持将音频,视频和其他基于时间的媒体添加到基于Java技术构建的应用程序和applet中。 这个可选包可以捕获,回放,流式传输和转码多种媒体格式,通过提供强大的工具包来开发可扩展的跨平台技术,为多媒体开发人员扩展了Java 2平台标准版(J2SE)。
也许你应该把声音放在缓存中:如果你每次播放它们都是从磁盘加载它们,它确实很慢。 现在,您可能遇到内存问题,但这取决于您的声音(大小,数量......)。
你可以尝试的一件事是制作一些额外的线程。
如果您可以同时播放两个声音,那么只需制作一个具有相同声音的5个实例的缓冲区并播放可用的声音。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.