繁体   English   中英

Java:播放WAV声音

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM