当前位置: 首页 > 面试题库 >

在JApplet中顺序播放音频片段

夹谷苗宣
2023-03-14
问题内容

我试图顺序播放音频片段,但是它们都同时播放。我不确定自己在做什么错。能否请你帮忙。我正在使用JFrame,并且此代码给出了运行时错误。

AudioClip click;
AudioClip click2;

URL urlClick1 = DisplayMath.class.getResource("number11.wav");
click = Applet.newAudioClip(urlClick1);

URL urlClick2 = DisplayMath.class.getResource("number12.wav");
click2 = Applet.newAudioClip(urlClick2);

click.play();
click.notify();

try {
    click2.wait();
} 
catch (InterruptedException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}
click2.play();

问题答案:

你想要实现的功能是不可能的了AudioClip,但它是一个Clip到一个LineListener连接。请参见在2个剪辑之间切换的示例。

import javax.sound.sampled.LineListener;
import javax.swing.*;

class TwoClips {

    public static void main(String[] args) throws Exception {
        URL url1 = new URL("http://pscode.org/media/100_2817-linear.wav");
        URL url2 = new URL("http://pscode.org/media/leftright.wav");
        final Clip clip1 = AudioSystem.getClip();
        clip1.open(AudioSystem.getAudioInputStream(url1));
        final Clip clip2 = AudioSystem.getClip();
        clip2.open(AudioSystem.getAudioInputStream(url2));
        LineListener listener = new LineListener() {

            Clip currentClip = clip1;

            @Override
            public void update(LineEvent event) {
                if (event.getType() == LineEvent.Type.STOP) {
                    if (currentClip == clip1) {
                        currentClip = clip2;
                    } else {
                        currentClip = clip1;
                    }
                    currentClip.setFramePosition(0);
                    currentClip.start();
                }
            }
        };
        clip1.addLineListener(listener);
        clip2.addLineListener(listener);
        Runnable r = new Runnable() {

            @Override
            public void run() {
                clip1.start();
                JOptionPane.showMessageDialog(null, "Close me to exit!");
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
        SwingUtilities.invokeLater(r);
    }
}


 类似资料:
  • 问一下Xamarin.Forms便携里面Xamarin.Forms的音频怎么播放 正如我所知,有依赖服务,我看到了一些示例,只有iOS和Android,但没有Windows Phone 8.1/Windows 8.1和UWP。

  • 本文向大家介绍微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例,包括了微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了微信小程序的开发,主要包括图片、录音、音频播放、音乐播放、视频、文件,具体如下: 图片: wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照。 OBJECT参数说明: 注:文

  • 音频的加载方式请参考:声音资源 使用 AudioSource 组件播放 在 层级管理器 上创建一个空节点 选中空节点,在 属性检查器 最下方点击 添加组件 -> 其他组件 -> AudioSource 来添加 AudioSource 组件 将 资源管理器 中所需的音频资源拖拽到 AudioSource 组件的 Clip 中,如下所示: 然后根据需要对 AudioSource 组件的其他参数项进行设

  • 一款带有圆形进度条的在线音频播放器。 [Code4App.com]

  • 在网上研究了几天后,我来这里寻求帮助。我目前正在为朋友们开发一个简短的2D游戏(实际上只是为了好玩),几天前我了解了剪辑。在这个游戏中,玩家可以收集物体(几乎就像马里奥中的硬币一样)。我的问题是,我在收集硬币时会发出非常短的声音(50kB约1秒),如果玩家在1秒钟内收集3个硬币,那么剪辑会使游戏延迟。如果先例剪辑已经结束,那么就没有延迟。但是如果先例剪辑没有结束,那么尝试再次播放剪辑会使游戏延迟(

  • 我的主页有一个有音频的视频背景。但音频只能使用firefox自动播放。如果我要在其他网站(如chrome或IE)上打开我的主页,音频将听不到。