Получил исключение при работе с библиотекой javax.sound.samples ....! - PullRequest
1 голос
/ 29 декабря 2010

Может кто-нибудь сказать мне, где я сделал ошибку в этой Java-программе. Я всегда получаю исключение, когда запускаю это.

import java.io.*;
import javax.sound.sampled.*;
public class x 
{
 public static void main(String args[])
 {
  try
  {
  File f=new File("mm.wav");
  AudioInputStream a=AudioSystem.getAudioInputStream(new FileInputStream(f));
  AudioFormat audioFormat = a
                   .getFormat();
             DataLine.Info dataLineInfo = new DataLine.Info(
                   Clip.class, audioFormat);
             Clip clip = (Clip) AudioSystem
                   .getLine(dataLineInfo);
             clip.open(a);
             clip.start();
 }
 catch(Exception e)
 {
  e.printStackTrace();
  System.out.println("exception caught ");
 }
 }
}

Будет выброшено это исключение

java.io.IOException: mark/reset not supported
    at java.io.InputStream.reset(InputStream.java:351)
    at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:135)
    at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1111)
    at x.main(x.java:10)

1 Ответ

1 голос
/ 29 декабря 2010

РЕДАКТИРОВАНИЕ:

После тестирования вашего кода, я получаю одну и ту же ошибку каждый раз, когда пытаюсь присвоить вашему коду неверный звуковой файл (я дал ему текстовые файлы и двоичные файлы классов Java :)) Я получаю одно и то же исключение каждый раз. Это не очень удобное исключение, но проверьте правильность вашего wav-файла.

РЕДАКТИРОВАТЬ # 2:

Если я изменю код на:

  AudioInputStream a=AudioSystem.getAudioInputStream(
      new BufferedInputStream(new FileInputStream(f)));

тогда неправильный звуковой файл выдаст более приятное исключение: UnsupportedAudioFileException

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...