2009-02-04 2 views
3

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

как предложено здесь: How can I play sound in Java?

Хотя он работает быстрее, чем MP3 + Javazoom jLayer, она по-прежнему звучит прерывисто в высоком темпе, и когда я ресурсоемкие вещи, как изменение размера окно приложения.

Любые советы по повышению производительности?

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

ответ

1

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

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

1

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

1

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

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

Смежные вопросы