пометка / сброс исключения во время getAudioInputStream () - PullRequest
2 голосов
/ 11 ноября 2011

Я опубликовал исправление проблемы (объяснено ниже), но не смог подтвердить, решает ли она проблему. Может ли кто-нибудь с Java 7 попробовать следующий апплет и отчитаться? Это было бы НАМНОГО оценено.

AudioMixerDemo

Проблема, о которой мне сообщили, заключалась в том, что верхний ряд кнопок, которые требуют загрузки аудиоклипа из ресурса, который был поврежден, не работает. Ошибка указывает на строку, где читается аудиофайл, и говорит, что выдается исключение ввода / вывода «mark / reset».

Этот код работает для Java 6, не работает для Java 7. Следующее утверждение выглядит следующим образом:

AudioInputStream ais = AudioSystem.getAudioInputStream(
    AudioMixer.class.getResourceAsStream(fileName));

Внутренняя область возвращает InputStream, и я думаю, что именно здесь возникает проблема «маркируемости». Эта проблема была обнаружена в базе данных ошибок Oracle как проблема обратной совместимости, но ей был присвоен низкий приоритет.

Я перекодировал вышесказанное следующим образом:

URL url = AudioMixer.class.getResource(fileName);
AudioInputStream ais =  AudioSystem.getAudioInputStream(url); 

В AudioSystem API нет ничего, что упоминало бы, что этот метод будет генерировать исключения "пометка / сброс" ввода / вывода. Итак, я надеюсь. Но я не смог подтвердить это!

1 Ответ

1 голос
/ 12 ноября 2011

Пользователь Java 7, который сообщил о проблеме, связался со мной и одобрил. Поэтому я предполагаю, что диагностика и устранение проблемы обратной совместимости верны, и больше не ищу тестеров (если вы просто не заинтересованы в проверке AudioMixer).

...