即使java是向后兼容的,我在使用JRE7运行我的Java 6应用程序时也有问题。
第一个问题:
javax.sound.sampled.Clip只是在我使用JRE7运行时不起作用,但是当我使用JRE6运行时工作得很好。
AudioInputStream inputStream = null;
//Try statement
inputStream = AudioSystem.getAudioInputStream(new ByteArrayInputStream(buffer));
clip = AudioSystem.getClip();
clip.open(inputStream);
if (delay > 0) {
Thread.sleep(delay);
}
clip.start();
//catch statement在JR7上,在clip.start()之后;clip.isRunning()返回false;在JRE6上运行时不会发生这种情况
第二个问题:
我使用java.util.zip.Inflater压缩图像像素,但是使用JRE7,当读取像素时,红色通道出现错误,原因是我找不出原因。
可能是因为充气器使用压缩库(jre\bin\zip.dll),这在jre6和jre7之间是不同的。
选中使用: System.getProperty("java.version"):
Java版本: 1.6.0_24
Java版本: 1.7.0_21
Java运行时版本: 1.7.0-ea
简单测试:
在这两个java版本中使用此代码:http://pastebin.com/WMCfh4Vp
结果:
有办法扭转这个问题吗?
谢谢。
发布于 2013-09-02 03:31:42
我怀疑问题在于您处理字节的方式(例如编码、传输等).不在压缩库或音频或图像库中。
(UPDATE -您的pastebin链接不包括FileOperations类。如果您处理字节的方式有问题,它很可能在那里!)
如果字节被正确处理,那么另一种可能是播放失败的系统(或JRE)没有必要的音频编解码器。
无论哪种方式,如果您想要一个详细的答案,您都需要提供更多的代码(最好是一对SSCCE)。
发布于 2013-09-14 23:03:11
问题是,我正在检查它是否在put播放之后运行,在Java 7上,您必须先让线程休眠,然后再检查它是否正在运行,以便让它在反复的睡眠中运行。
https://stackoverflow.com/questions/18564611
复制相似问题