Исключение потоковой передачи по TCP - PullRequest
0 голосов
/ 06 апреля 2019

Я хотел бы создать программу Server-Client, которая будет передавать потоковую музыку по TCP, но у меня возникла проблема после запуска кода.

Моя программа дает мне это исключение:

Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1121) at online.AudioClient.main(AudioClient.java:18)

Это мой код сервера:

public static void main(String[] args) throws IOException {
    String zenecim = "C:/Users/valaki/Music/Zene/Axel Thesleff - Bad Karma.wav";
    File soundFile = AudioUtil.getSoundFile(zenecim);
    System.out.println("Létrejött a soundfile");

    System.out.println("server: " + soundFile);

    ServerSocket serverSocker = new ServerSocket(6666);
    System.out.println("Socket");
    FileInputStream in = new FileInputStream(soundFile);
    if (serverSocker.isBound()) {
        System.out.println("if-ben");
        Socket client = serverSocker.accept();
        OutputStream out = client.getOutputStream();

        byte buffer[] = new byte[2048];
        int count;
        while ((count = in.read(buffer)) != -1) {
            out.write(buffer, 0, count);
            out.flush();
            System.out.println("while-ban");
        }
    }

    System.out.println("server: shutdown");
}

И мой код клиента:

public static void main(String[] args) throws Exception {

    // play soundfile from server
    System.out.println("Client: reading from 127.0.0.1:6666");
    try (Socket socket = new Socket("127.0.0.1", 6666)) {
        if (socket.isConnected()) {
            InputStream in = new BufferedInputStream(socket.getInputStream());
            AudioInputStream ais = AudioSystem.getAudioInputStream(in);
            Player playMP3 = new Player(ais);
            playMP3.play();

        }
    }
    System.out.println("Client: end");
}

Как вы думаете, в чем проблема? Есть идеи?

...