java - BigClip 的问题

标签 java url audio nullpointerexception malformedurlexception

我一直在尝试在我的应用程序中播放音乐。我一直在使用示例 BigClip 代码:

try {
        url = new URL(Sounds.class.getResourceAsStream("title1.wav").toString());
        } catch (MalformedURLException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }
        BigClip clip = new BigClip();
        AudioInputStream ais = null;
        try {
            ais = AudioSystem.getAudioInputStream(url);
        } catch (UnsupportedAudioFileException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        try {
            clip.open(ais);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (LineUnavailableException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        clip.start();
        JOptionPane.showMessageDialog(null, "BigClip.start()");
        clip.loop(4);
        JOptionPane.showMessageDialog(null, "BigClip.loop(4)");
        clip.setFastForward(true);
        clip.loop(8);
        // the looping/FF combo. reveals a bug..
        // there is a slight 'click' in the sound that should not be audible
        JOptionPane.showMessageDialog(null, "Are you on speed?");
}

当我只使用 title1.wav ,我得到这个错误:
java.net.MalformedURLException: no protocol: java.io.BufferedInputStream

当我添加协议(protocol) file:// ,我得到一个 NullPointerException ,虽然我看不出是什么原因造成的。

我使用了错误的协议(protocol),还是我做错了什么?提前致谢!

最佳答案

假设您的文件与 Sounds 类位于同一包(“目录”)中,请使用

url = Sounds.class.getResource("title1.wav");

因为
new URL(Sounds.class.getResourceAsStream("title1.wav").toString())

只是注定不工作。您调用toString在 InputStream 的一个实例上。

NPE 的发生可能是因为 AudioSystem.getAudioInputStream由于错误的 URL 路径而失败,所以 ais为空且 BigClipopen 抛出 NPE .

关于java - BigClip 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899479/

相关文章:

java - Android - 如何执行回调函数来获取从图库中选择的路径图像

java - 使用opencv或javacv识别图像中具有相同颜色的轮廓?

java - RequestBody JSON 格式有单引号

java - 在Java中,当另一个音频文件开始使用key_events时,如何停止前一个音频文件

ios - 显示来自 PCM 文件或 FFT 的波形

java - java中的线程争用

.net - Stackoverflow 如何转义 url 中的标签名称

jquery - 从字符串创建安全标题

android - 是否有可能在Android中连续检测外部声音?

parsing - Scala-具有查询字符串解析器和Builder DSL的URL