我在网上发现了这个并尽最大努力操纵它,但我无法让它发挥作用。
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)
感谢您提前提供任何帮助!!
答案 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时有时会导致错误。