Воспроизвести звук при использовании попробовать и поймать - PullRequest
0 голосов
/ 20 февраля 2019

Невозможно скомпилировать.Я пытаюсь воспроизвести звук во время использования try and catch.Файл WAV находится на моем рабочем столе.Я получаю ошибки, такие как: AudioStream не может быть разрешен для типа AudioStream не может быть разрешен для типа AudioPlayer не может быть разрешен.

Я не уверен, как это исправить, я знаю, что это что-то простое,

import java.io.FileInputStream;
import java.io.InputStream;

public class PlayMySoundApplication
{
public static void main(String[] args) 
 throws Exception
{
// open the sound file as a Java input stream
String applause2x = "/Users/pc/Desktop/applause2x.wav";
InputStream in = new FileInputStream(applause2x);

// create an audiostream from the inputstream
AudioStream audioStream = new AudioStream(in);

// play the audio clip with the audioplayer class
AudioPlayer.player.start(audioStream);

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Добавить импорт для аудио,

import java.io.*;
import sun.audio.*;


public class PlayMySoundApplication
{
  public static void main(String[] args) 
  throws Exception
  {
    // open the sound file as a Java input stream
    String applause2x = "/Users/pc/Desktop/applause2x.wav";
InputStream in = new FileInputStream(applause2x);


    // create an audiostream from the inputstream
    AudioStream audioStream = new AudioStream(in);

    // play the audio clip with the audioplayer class
    AudioPlayer.player.start(audioStream);
  }
}
0 голосов
/ 20 февраля 2019

Я не знаю, какую звуковую библиотеку вы пытаетесь использовать.

Если вы используете приличную версию JDK, это должно сработать:

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;

public class MakeSound {

    public static void main(String[] args) throws LineUnavailableException, UnsupportedAudioFileException, IOException {
        playSound("test.wav");
    }

    public static void playSound(String strFilename)
            throws LineUnavailableException, UnsupportedAudioFileException, IOException {

        File soundFile = new File(strFilename);

        AudioInputStream audioStream = AudioSystem.getAudioInputStream(soundFile);

        AudioFormat audioFormat = audioStream.getFormat();

        DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
        try (SourceDataLine sourceLine = (SourceDataLine) AudioSystem.getLine(info);) {
            sourceLine.open(audioFormat);
            sourceLine.start();

            int nBytesRead = 0;
            byte[] abData = new byte[128000];
            while (nBytesRead != -1) {
                nBytesRead = audioStream.read(abData, 0, abData.length);
                if (nBytesRead > 0) {
                    sourceLine.write(abData, 0, nBytesRead);
                }
            }

            sourceLine.drain();
        }
    }
}

HTH!

...