Java: воспроизведение звуков WAV - PullRequest
3 голосов
/ 04 февраля 2009

Я пытаюсь создать java драм-машину, которая должна воспроизводить образцы звуков WAV различных партий ударных (бас-барабан, малый барабан и т. Д.). Поскольку мне нужно играть звуки в строгой последовательности, мне нужна высокая производительность. В настоящее время я использую:

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, он все еще звучит нестабильно в высоком темпе и когда я выполняю такие интенсивные процессы, как изменение размера окна приложения.

Какие-нибудь советы по улучшению производительности?

КСТАТИ. Я также читал, что sun.audio.* устарела. Есть ли подобное решение?

Ответы [ 3 ]

1 голос
/ 04 февраля 2009

Возможно, вам следует поместить звуки в кэш: если вы загружаете их с диска каждый раз, когда воспроизводите их, это действительно медленно. Теперь у вас может быть проблема с памятью, но это зависит от ваших звуков (размер, число ...).

1 голос
/ 21 сентября 2011

Одна вещь, которую вы можете попробовать, это создать пару дополнительных тем.

Если вы можете воспроизводить два звука одновременно, просто создайте буфер с 5 экземплярами одного и того же звука и воспроизведите один доступный.

1 голос
/ 04 февраля 2009

Вы смотрели на Java Media Framework (JMF) :

API Java Media Framework (JMF) позволяет аудио, видео и другие основанные на времени медиа для добавления в приложения и апплеты, построенные на Java технология. Этот дополнительный пакет, который может захватывать, воспроизведение, поток, и перекодировать несколько форматов мультимедиа, расширяет платформу Java 2, стандарт Издание (J2SE) для мультимедиа разработчики, предоставляя мощный инструментарий для разработки масштабируемого, кроссплатформенная технология.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...