java - 当JAV中包含WAV时,如何在Java中播放WAV

标签 java audio applet javasound

我一直在尝试处理Applet上的声音,并且不尝试所有其他方法,而是用Java播放声音的最佳方法是什么?有一些要求:

  • 需要能够循环
  • 需要能够从存档JAR中加载WAV(我认为使用getClass()。getResource)
  • 需要能够同时播放多个声音,并且不能剪辑已经播放的声音

  • 非常感谢您查看我的问题,希望大家有答案!

    由于有了出色的帮助,我几乎可以使用它:
    public class MyGame() {
       Clip bullet;
    
    
        public void init(){
            try {
    
            bullet = AudioSystem.getClip();
            URL url2 = this.getClass().getResource("bulletSound.wav");
            AudioInputStream ais2 = AudioSystem.getAudioInputStream( url2 );
    
            bullet.open(ais2);
            } catch (LineUnavailableException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            } catch (UnsupportedAudioFileException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }
        }
        randomMethodToPlayBullet(){
            bullet.setFramePosition(0);
            bullet.start();
        }
    }
    

    问题在于子弹声音会播放,但是如果在第一个子弹声音完成之前连续两次调用randomMethodToPlayBullet,则第二个子弹不会播放。

    最佳答案

    从jar文件加载资源的最佳方法是将一个类放在同一文件夹中,并使用.class.getResource(...).class.getResourceaAsStream(...)方法获取资源:

    URL url = ClazzInTheFolderOfMyMidiFile.class.getResource(nameOfMidiFile);
    

    要么
    InputStream resourceAsStream = ClazzInTheFolderOfMyMidiFile.class.getResourceAsStream(nameOfMidiFile);
    

    关于java - 当JAV中包含WAV时,如何在Java中播放WAV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104619/

    相关文章:

    shell - 无法使用 ffmpeg 将评论元数据提供给 MP3 文件

    java - 使用 jnlp 文件在小程序中无法进行延迟 jar 加载的原因可能是什么?

    java - 在哪里放置 java 小程序策略文件?

    java - 修复此 'write to static field from instance method' findbugs 警告的最佳方法是什么?

    java - 小程序查看问题

    java - 创建类型为 "Class"的参数化类型

    ios - 良好的后端方式来存储iOS应用的歌曲(音频)样本?

    c++ - 从 SoundTouch 音频库转换 short[] 以进行播放

    java - 基于java的网站架构

    Java - 在 JavaDB 中将图像存储为 Blob