当前位置:  技术问答>java相关

java是哑巴吗??在线等解答

    来源: 互联网  发布时间:2015-04-14

    本文导语:  怎么用java播放各种声音文件,如*.wav的文件? 在书上看到的都是在Applet中播放的,能不能在Application中播放吗? 有人告诉我在javax.sound.*;这个包 但我在编译的时候找不到包?我用的是jdk1.3.0的版本。 | ...

怎么用java播放各种声音文件,如*.wav的文件?
在书上看到的都是在Applet中播放的,能不能在Application中播放吗?
有人告诉我在javax.sound.*;这个包 但我在编译的时候找不到包?我用的是jdk1.3.0的版本。

|

再帖一个例子代码,从java.sun.com那里下的:

import java.applet.AudioClip;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.awt.GridBagLayout;

public class SoundApplication extends JPanel
                              implements ActionListener,
                                         ItemListener {
    SoundList soundList;
    String auFile = "spacemusic.au";
    String aiffFile = "flute+hrn+mrmba.aif";
    String midiFile = "trippygaia1.mid";
    String rmfFile = "jungle.rmf";
    String wavFile = "bottle-open.wav";
    String chosenFile;
        
    AudioClip onceClip, loopClip;
    URL codeBase;

    JComboBox formats;
    JButton playButton, loopButton, stopButton;
    JLabel status;
        
    boolean looping = false;

    public SoundApplication() {
        String [] fileTypes = {auFile,
                               aiffFile,
                               midiFile,        
                               rmfFile,
                               wavFile};
        formats = new JComboBox(fileTypes);
        formats.setSelectedIndex(0);
        chosenFile = (String)formats.getSelectedItem();
        formats.addItemListener(this);

        playButton = new JButton("Play");
        playButton.addActionListener(this);

        loopButton = new JButton("Loop");
        loopButton.addActionListener(this);

        stopButton = new JButton("Stop");
        stopButton.addActionListener(this);
        stopButton.setEnabled(false);
        
        status = new JLabel(
                    "Click Play or Loop to play the selected sound file.");
                
        JPanel controlPanel = new JPanel();
        controlPanel.add(formats);
        controlPanel.add(playButton);
        controlPanel.add(loopButton);
        controlPanel.add(stopButton);           
                
        JPanel statusPanel = new JPanel();
        statusPanel.add(status);
                
        add(controlPanel);
        add(statusPanel);

        startLoadingSounds();
    }

    public void itemStateChanged(ItemEvent e){
        chosenFile = (String)formats.getSelectedItem();
        soundList.startLoading(chosenFile);
    }

    void startLoadingSounds() {
        //Start asynchronous sound loading.
        try {
            codeBase = new URL("file:" + System.getProperty("user.dir") + "/");
        } catch (MalformedURLException e) {
            System.err.println(e.getMessage());
        }
        soundList = new SoundList(codeBase);
        soundList.startLoading(auFile);
        soundList.startLoading(aiffFile);
        soundList.startLoading(midiFile);
        soundList.startLoading(rmfFile);
        soundList.startLoading(wavFile);
    }

    public void stop() {
        onceClip.stop();        //Cut short the one-time sound.
        if (looping) {
            loopClip.stop();    //Stop the sound loop.
        }
    }    

    public void start() {
        if (looping) {
            loopClip.loop();    //Restart the sound loop.
        }
    }    

    public void actionPerformed(ActionEvent event) {
        //PLAY BUTTON
        Object source = event.getSource();
        if (source == playButton) {
            //Try to get the AudioClip.
            onceClip = soundList.getClip(chosenFile);
            stopButton.setEnabled(true);
            onceClip.play();     //Play it once.
            status.setText("Playing sound " + chosenFile + ".");
            if (onceClip == null) {
                status.setText("Sound " + chosenFile + " not loaded yet.");
            }
            return;
        }

        //START LOOP BUTTON
        if (source == loopButton) {
            loopClip = soundList.getClip(chosenFile);

            looping = true;
            loopClip.loop();     //Start the sound loop.
            loopButton.setEnabled(false); //Disable start button.
            stopButton.setEnabled(true);
            status.setText("Playing sound " + chosenFile + " continuously.");
            if (loopClip == null) {
                status.setText("Sound " + chosenFile + " not loaded yet.");
            }
            return;
        }

        //STOP LOOP BUTTON
        if (source == stopButton) {
            if (looping) {
                looping = false;
                loopClip.stop();    //Stop the sound loop.
                loopButton.setEnabled(true); //Enable start button.
            } else if (onceClip != null) {
                onceClip.stop();
            }
            stopButton.setEnabled(false);
            status.setText("Stopped playing " + chosenFile + ".");
            return;
        }
    }

    public static void main(String s[]) {
        WindowListener l = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        };
        JFrame f = new JFrame("SoundApplication");
        f.addWindowListener(l);
        f.getContentPane().add(new SoundApplication());
        f.setSize(new Dimension(400,100));
        f.show();
    }
}


    
 
 

您可能感兴趣的文章:

  • qianyuting(钱),关于Java的问题的解答,来领分,再次感谢!!!
  • java环境变量为什么要配置path和classpath详细解答
  • 关于java读文件的难题,急需各位高手解答。
  • 想学JAVA,希望解答一个基本概念
  • 有关JAVA的小问题,不知哪位高手帮我解答一下
  • 关于JAVA程序发布的问题,一定给分,请从事JAVA编程工作的人解答
  • think in java里一段关于snake.java的程序没看懂,请大家给解答一下,谢谢
  • 我的java不能运行了,谁能帮我一把?在线等待,我是初学者,请解答得详细一点,谢谢!
  • 小弟初学java,今遇一难题,望众高手解答。
  • 常见问题解答: Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
  • 我在学习java时遇到的几个问题,望大家解答
  • java中关于事务处理的问题,急需解答!在线等待!
  • 学java 大半年了,有几个概念性问题一直不清楚,请高手详细解答
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java判断日期字符是否有效(在线等待答案)
  • 各位兄弟,有哪位知道JAVA中JTAPI包如何用,在线等待,QQ:67178474
  • 在线等,java认证考试
  • ***在线等待!!!***Java中怎样获取,应用图片?
  • 谁知道哪有JAVA的类库帮助啊!中文的!(在线给分)
  • java中如何调com组件?在线送分。
  • 有关java出错的问题,在线等候
  • 在线等待,JAVA如何播放多媒体文件?
  • 在线等 linux查看java线程数
  • 在线等待:在Java中是否有权限修改一个文件的权限?
  • 急,在线等待,Java程序怎样在linux下通过脚本启动时自动运行?
  • 有那位仁兄知道,在LINUX下用什么命令编译JAVA原文件,谢谢,在线等待。
  • 请问java应用程序怎样打开网页(在线等待)
  • 如何检验Java虚拟机是否存在??? 谢谢 在线求答!!!
  • 什么地方有 Think in java 的代码下载(50分)在线等候!!!
  • java的时间问题,在线等待!
  • 有人有用JAVA读一个网页代码的程序吗?(在线等!)
  • 如何用Java做代理,在线等待!!
  • java.sql.SQLException: 类型长度大于最大值 是什么意思?在线给分
  • 急求:如何在linux定期执行某个java程序?(在线等!)
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3