Исключение при воспроизведении файла AU в Windows 11, но работает в Windows 10 (тот же код)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Исключение при воспроизведении файла AU в Windows 11, но работает в Windows 10 (тот же код)

Сообщение Anonymous »


Использование следующей программы для выполнения файла .au со звуком.

Скомпилировано и выполнено с использованием Java 17.0.7

В Windows 10 генерируется звук.

В Windows 11 возвращается исключение.

Исключение

Ошибка воспроизведения звука.

java.lang.IllegalArgumentException: нет интерфейса сопоставления строк. Формат клипа, поддерживающий PCM_SIGNED, неизвестная частота дискретизации, 16 бит, стерео, 4 байта/кадр, поддерживается обратный порядок байтов.

Вот код, который выполняется.

import java.io.File; импортировать java.io.IOException; импортировать java.util.Scanner; импортировать javax.sound.sampled.AudioFormat; импортировать javax.sound.sampled.AudioInputStream; импортировать javax.sound.sampled.AudioSystem; импортировать javax.sound.sampled.Clip; импортировать javax.sound.sampled.LineUnavailableException; импортировать javax.sound.sampled.UnsupportedAudioFileException; публичный класс SimpleAudioTest { Длинный currentFrame; статический клип-клип; Статус строки; AudioInputStream audioInputStream; статическая строка filePath; публичный SimpleAudioTest() выдает исключение UnsupportedAudioFileException, IOException, LineUnavailableException { аудиоInputStream = AudioSystem.getAudioInputStream(new File("C:\\Temp\\mySound.au").getAbsoluteFile()); Формат AudioFormat = audioInputStream.getFormat(); if ((format.getEncoding() == AudioFormat.Encoding.ULAW) || (format.getEncoding() == AudioFormat.Encoding.ALAW)) { AudioFormat tmp = новый AudioFormat( AudioFormat.Encoding.PCM_SIGNED, формат.getSampleRate(), format.getSampleSizeInBits() * 2, формат.getChannels(), format.getFrameSize() * 2, формат.getFrameRate(), истинный); audioInputStream = AudioSystem.getAudioInputStream(tmp, audioInputStream); формат = ТМП; } клип = AudioSystem.getClip(); clip.open(audioInputStream); clip.loop(Clip.LOOP_CONTINUOUSLY); } public static void main(String[] args) { System.out.println("Запуск теста"); пытаться { filePath = "Ваш путь к файлу"; SimpleAudioTest audioPlayer = новый SimpleAudioTest(); клип.старт(); Сканер sc = новый сканер(System.in); sc.закрыть(); } поймать (исключение ex) { System.out.println("Ошибка воспроизведения звука."); ex.printStackTrace(); } } } Есть ли что-то новое в Windows 11?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»