Звук не воспроизводится в Eclipse - PullRequest
0 голосов
/ 05 мая 2020

Вот код для класса SoundTest:


package code;


import java.io.File;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;


public class SoundTest {

    public static void main(String args[])
    {
        File sound = new File("main//Sounds//open1.wav");
        playSound(sound);
    }

    public static void playSound(File f)
    {
        try {

            File file = f;
            if(file.exists())
            {
                AudioInputStream audio = AudioSystem.getAudioInputStream(file);
                Clip clip = AudioSystem.getClip();
                clip.open(audio);
                clip.start();
                //clip.close();
            }
            else
            {
                System.out.println("Can't find file");
            }


        }
        catch(Exception e)
        {
            System.out.println("Didn't work!");
        }
    }
}

Когда я запускаю его, нет ошибок или исключений, и он никогда не говорит «Не могу найти файл» или «Не получилось!». Но я не слышу ни звука. Мне нужно изменить какие-то настройки в Eclipse, чтобы звук был слышен, или я что-то делаю не так? Я почти уверен, что звуковой файл находится в нужном месте.

1 Ответ

2 голосов
/ 05 мая 2020

Это не проблема затмения. Файл открывается и воспроизводится java, но даже до того, как этот аудиоклип завершает воспроизведение, программа завершается - это означает, что java программа не ожидает завершения воспроизведения клипа

Ваш метод отсутствует одна строка кода, чтобы дать вам то, что вы хотите, см. ниже

Thread.sleep(clip.getMicrosecondLength() / 1000);

Итак, после добавления этой строки ваш код должен выглядеть так, и вы услышите свой musi c

    AudioInputStream audio = AudioSystem.getAudioInputStream(file);
    Clip clip = AudioSystem.getClip();
    clip.open(audio);
    clip.start();
    Thread.sleep(clip.getMicrosecondLength() / 1000);
...