Описание тега javasound
Звук Java
Java Sound API предоставляет функциональные возможности для захвата, обработки и воспроизведения дискретизированных аудиоданных, а также упорядочивания и синтеза MIDI- данных.
Java Sound был включен в J2SE в Java 1.3.
Сэмплированный звук
В javax.sound.sampled
пакет:
Предоставляет интерфейсы и классы для захвата, обработки и воспроизведения дискретизированных аудиоданных.
Играя Clip
import java.net.URL;
import javax.swing.*;
import javax.sound.sampled.*;
public class LoopSound {
public static void main(String[] args) throws Exception {
URL url = new URL("http://pscode.org/media/leftright.wav");
Clip clip = AudioSystem.getClip();
// getAudioInputStream() also accepts a File or InputStream
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);
clip.loop(Clip.LOOP_CONTINUOUSLY);
SwingUtilities.invokeLater(() -> {
// A GUI element to prevent the Clip's daemon Thread
// from terminating at the end of the main()
JOptionPane.showMessageDialog(null, "Close to exit!");
});
}
}
MIDI-последовательности
В
javax.sound.midi
пакет:
Предоставляет интерфейсы и классы для ввода / вывода, секвенирования и синтеза данных MIDI (цифровой интерфейс музыкальных инструментов).
Воспроизведение MIDI-последовательности
import javax.sound.midi.*;
import javax.swing.*;
import java.net.URL;
class PlayMidi {
public static void main(String[] args) throws Exception {
URL url = new URL("http://pscode.org/media/EverLove.mid");
Sequence sequence = MidiSystem.getSequence(url);
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
sequencer.setSequence(sequence);
sequencer.start();
SwingUtilities.invokeLater(() -> {
// A GUI element to prevent the Sequencer's daemon Thread
// from terminating at the end of the main()
JOptionPane.showMessageDialog(null, "Close to exit!");
});
}
}
Интерфейс поставщика услуг
Java Sound API использует интерфейс поставщика услуг для идентификации кодировщиков и декодеров для звуковых форматов и типов последовательностей. Таким образом, добавить поддержку нового формата или типа так же просто, как предоставить для него декодер и / или кодировщик, добавить файл SPI в манифест Jar, в котором он находится, а затем добавить Jar в класс времени выполнения. путь к приложению.
Возможности звука Java
Возможности API дискретизированного звука можно получить с помощью таких методов, как AudioSystem.getAudioFileTypes()
& AudioSystem.getMixerInfo()
.
Возможности MIDI можно получить с помощью таких методов, как MidiSystem.getMidiFileTypes()
&MidiSystem.getMidiDeviceInfo()
.
Поддержка декодирования MP3
Java Sound API не поддерживает многие форматы дискретизированного звука внутри. В Oracle JRE версии 1.8.0_65getAudioFileTypes()
обычно вернется {WAVE, AU, AIFF}
. По крайней мере, декодер MP3 находится поблизости. Файл mp3plugin.jar Java Media Framework поддерживает декодирование MP3.
Аплет AudioClip
Applet
обеспечивает удобство AudioClip
объект. AudioClip
похож на звук Java Clip
, но не такой универсальный. Звук Java можно использовать в апплетах.
Смотрите также
- Java Sound след в Java Tutorial.
- Java Sound API: демонстрация звука Java. Демонстрация звука Java демонстрирует, как Java Sound API может использоваться для управления воспроизведением звука, захватом звука, синтезом MIDI и основным секвенсором MIDI.
- Java Sound API в JavaDocs
- Звуковые ресурсы Java ( архив). Хотя эти примеры относительно старые, Java Sound API был завершен на момент их подготовки, и они покрывают большинство задач, которые вы, возможно, захотите выполнить со звуком. Примеры были подготовлены двумя людьми, которые принимали активное участие в ранней разработке Java Sound API, и они вложили в этот ресурс многолетний опыт работы со звуком и Java Sound. Стоит проверить.
Полезные вопросы и ответы по звуку Java
- Можно ли использовать Java Sound для управления громкостью системы?
- Воспроизведение MP3 с использованием Java Sound API
- Где я могу скачать mp3plugin.jar для воспроизведения MP3 в коде Java?
- Как проиграть длинный аудиоклип?
- Генератор синусоидального звука на Java
- Обнаружение тишины при записи
- Как использовать данные аудиоданных из Java Sound?