Описание тега javasound

Используйте этот тег, чтобы задать вопросы об API звука Java. Они предназначены для захвата, обработки и воспроизведения дискретизированных аудиоданных, а также для упорядочивания и синтеза данных MIDI.

Звук 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