如何为jgrasp代码添加声音?

时间:2016-05-10 16:54:56

标签: javascript java audio javasound jgrasp

我在网上发现了这个并尽最大努力操纵它,但我无法让它发挥作用。

import java.io.*;
import sun.audio.*;

/**
 * A simple Java sound file example (i.e., Java code to play a sound file).
 * AudioStream and AudioPlayer code comes from a javaworld.com example.
 * @author alvin alexander, devdaily.com.
 */



public class SoundTest
{
  public static void main(String[] args) 
  throws IOException

  {
    // open the sound file as a Java input stream
    String gongFile = "C:/Users/jd186856/Desktop/SoundTest/IMALEMON.au";
    InputStream in = new FileInputStream(gongFile);

    // create an audiostream from the inputstream
    AudioStream audioStream = new AudioStream(in);

    // play the audio clip with the audioplayer class
    AudioPlayer.player.start(audioStream);

  }
}

以下是错误代码:

  

线程“main”中的异常java.io.IOException:无法创建音频   来自输入流的流   sun.audio.AudioStream。(AudioStream.java:80)at   SoundTest.main(SoundTest.java:23)

感谢您提前提供任何帮助!!

1 个答案:

答案 0 :(得分:1)

除了1997年的列表外,我无法找到对Java类AudioStream的引用!

目前的做法是使用AudioInputStream。这可以在Java 7和Java 7的API中找到。 8。

Java Sound Tutorials难以阅读,但涵盖了当前的做法。请参阅“播放音频”部分。导入声音时,我总是使用URL,并避免创建InputStream作为中间步骤。将InputStreams转换为AudioInputStreams的代码可能会将“Mark / Reset”测试应用于可能失败的InputStream。直接从URL创建AudioInputStream可以避免此测试。

事实上,如果AudioStream允许您使用URL作为源,将其更改为使用源文件的URL可能会修复您的代码,但我不会指望它在每个Java系统上工作,给定许多太阳图书馆已被弃用。 (我不确定这个是否已被弃用,但在当前的API中找不到它。)

有时可行的另一个闪避是将InputStream包装在BufferedInputStream中,因为此类实现了标记和重置方法,这些方法在尝试使用InputStream时有时会导致错误。