SORU
3 NİSAN 2011, Pazar


java.ıo.Ioexception: mark/desteklenen Sıfırla.

try {
    //String location = dir1.getCanonicalPath() "\\app_yamb_test1\\mySound.au";
    //displayMessage(location);
    AudioInputStream audio2 = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("mySound.au"));
    Clip clip2 = AudioSystem.getClip();
    clip2.open(audio2);
    clip2.start();
} catch (UnsupportedAudioFileException uae) {
    System.out.println(uae);
    JOptionPane.showMessageDialog(null, uae.toString());
} catch (IOException ioe) {
    System.out.println("Couldn't find it");
    JOptionPane.showMessageDialog(null, ioe.toString());
} catch (LineUnavailableException lua) {
    System.out.println(lua);
    JOptionPane.showMessageDialog(null, lua.toString());
}

Bu kod Eclipse uygulama çalıştırdığımda gayet iyi çalışıyor. Ses çalar ve istisnalar vardır. Ben dağıtım klasöründen çalıştırdığınızda, ancak sesi çalmıyor ve mesajı benim iletişim içinde java.io.IOException: mark/reset not supported olsun.

Bu durumu nasıl düzeltebilirim?

CEVAP
3 NİSAN 2011, Pazar


AudioSystem.getAudioInputStream(InputStream) belgelerine diyor ki:

Bu yöntemin uygulanması olabilir birden fazla ayrıştırıcıları incelemek için gerektirir onlar olup olmadığını belirlemek için akış destek. Bu ayrıştırıcıları gerekir akış mark, yeterli veri okumak onlar destek olup olmadığını belirlemek için izle, ve, değilse, sıfırlama akış okuma özgün için işaretçi pozisyon. Eğer giriş akışı mı yoksa bu işlem, bu yöntem destek bir IOException ile başarısız olabilir.

Bu nedenle, bu yöntem için verdiğiniz akışı mark/reset isteğe bağlı işlevleri desteklemesi gerekir. BufferedInputStream bir kaynak akışı süsleyin.

//read audio data from whatever source (file/classloader/etc.)
InputStream audioSrc = getClass().getResourceAsStream("mySound.au");
//add buffer for mark/reset support
InputStream bufferedIn = new BufferedInputStream(audioSrc);
AudioInputStream audioStream = AudioSystem.getAudioInputStream(bufferedIn);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • iNCH

    iNCH

    20 Temmuz 2009