Эта статья разделяет конкретный код для javax.sound, чтобы реализовать простой воспроизведение звука для вашей ссылки. Конкретный контент заключается в следующем
/ ** * @see * @author al_assad [email protected] * @date 17 ноября 2016 г. в 18:27:59 * @version v1.0 * Описание: простой аудиоплеер (только поддерживает au, ra, wav) * импортировать java.io.*; Public Class MusicPlayer {Private String MusicPath; // аудиофайл частного летучего логического run run = true; // Записывает, играет ли звук в частном потоке MainThread; // The Task Thread для воспроизведения Audio Private AudioinputStream Audiostream; Частный аудиоформат AudioFormat; частный источник источника; public MusicPlayer (String MusicPath) {this.musicpath = musicpath; prefetch (); } // Подготовка данных private void prefetch () {try {// Получить аудио входного потока AudioStream = audiosystem.getAudioInputStream (новый файл (musicpath)); // Получить кодированный объект audioFormat = audiostream.getFormat (); // Упаковка аудио информация dataline.info datalineinfo = new Dataline.info (SourceDataline.class, AudioFormat, Audiosystem.not_specified); // Создание строк исходных данных с использованием класса информации после обертывания аудио информации и выступайте в качестве источника источника микшера = (SourceDataline) audiosystem.getline (datalineinfo); SourceDataline.open (AudioFormat); SourceDataline.start (); } catch (UnsupportedAudiofileException ex) {ex.printStackTrace (); } catch (lineUnavailableException ex) {ex.printStackTrace (); } catch (ioException ex) {ex.printstackTrace (); }} // destructor: закрыть поток считывания аудио и линии данных, защищенные void infintize () бросает throwable {super.finalize (); SourceDataline.drain (); SourceDataline.close (); audiostream.close (); } // Играть в Audio: Установить, чтобы зацикнуть Private void Playmusic (Boolean Loop) Throws прерывания, {try {if (loop) {while (true) {playmusic (); }} else {playmusic (); // Очистить линию данных и закрыть источники .drain (); SourceDataline.close (); audiostream.close (); }} catch (ioException ex) {ex.printStackTrace (); }} private void playmusic () {try {synchronized (this) {run = true; } // Читать поток аудиодатчиков через строку данных и отправить его в микшер; // Процесс передачи потока данных: AudioinputStream -> SourceDataline; audiostream = audiosystem.getaudioinputstream (новый файл (musicpath)); int считать; Byte tempbuff [] = новый байт [1024]; while ((count = audiostream.read (tempbuff, 0, tempbuff.length))! = -1) {синхронизированный (это) {while (! run) wat (); } sourceDataline.write (Tempbuff, 0, count); }} catch (unsupportedAudiofileException ex) {ex.printstackTrace (); } catch (ioException ex) {ex.printstackTrace (); } catch (прерванное искусство ex) {ex.printstackTrace (); }} // Пауза воспроизведение Audio private void stopmusic () {synchronized (this) {run = false; notifyAll (); }} // продолжать воспроизводить музыку private void continuEmusic () {synchronized (this) {run = true; notifyAll (); }} // Метод управления внешним вызовом: генерировать Audio Main Thread; public void Start (Boolean Loop) {mainthread = new Thread (new Runnable () {public void run () {try {playmusic (loop);} catch (прерывание Exception e) {e.printstackTrace ();}}}); mainthread.start (); } // Метод управления внешним вызовом: приостановите аудиотехта public void stop () {new Thread (new Runnable () {public void run () {stopmusic ();}}). Start (); } // Метод управления внешним вызовом: продолжить аудиотехта public void continues () {new Thread (new Runnable () {public void run () {continuEmusic ();}}). Start (); } // Проверка public static void main (string [] args) throws urruptedException {musicplayer player = new MusicPlayer ("bgm/1.wav"); // Создать музыкальный игрок Player.start (true); // Запуск воспроизведения в форме петли, игрок (false) не играет TimeUnit.seconds.sleep (5); player.stop (); // пауза воспроизведение звука timeUnit.seconds.sleep (4); player.continues (); // продолжать начинать играть в аудио}}
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.