0

ボタンをクリックしたときに再生するサウンド ファイル (.wav) を取得しようとしています。呼び出しはすべて正しく行われます。ボタンをクリックすると、IOException が出力されます。これは、音楽を開始するメソッドのコードです。

public void playSound(String path) {

//M:\Programming\workspace\testing\music.wav  <--- String path
    InputStream in;
    AudioStream as = null;

    try {
        in = new FileInputStream(path);
        as = new AudioStream(in);
    } catch (FileNotFoundException e) {
        System.out.println("Audio file not found.");
        e.printStackTrace();
    } catch (IOException e) {
        System.out.println("Incorrect input.");
        e.printStackTrace();
    }
    AudioPlayer.player.start(as);
}

これはエラーです:

java.io.IOException: could not create audio stream from input stream
at sun.audio.AudioStream.<init>(Unknown Source)
at GameWindow.playSound(GameWindow.java:484)
at GameWindow$13.mouseReleased(GameWindow.java:385)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Google で見つけた音声ファイルを再生するためにさまざまな方法を試しましたが、すべて同じエラーが返されます。これを修正するにはどうすればよいですか? また、オーディオ ファイルを操作するためのより良い方法があれば、参照できるリソースを提供していただけますか?

4

1 に答える 1

1

WaveFileReader(package )をインスタンス化してみてくださいcom.sun.media.sound。これは、ファイルの読み取りに使用する必要があります。が表示された場合UnsupportedAudioFileExceptionは、wav ファイルが破損している可能性があります。別のファイルで試してください。

于 2013-05-17T21:39:24.000 に答える