编程论坛's Archiver

wangtianhong 发表于 2008-5-13 13:56

请教???

为什么我使用JAVA的AudioClip,程序运行正常,却听不到声音?
使用AudioClip需要什么注意的地方?

sunkaidong 发表于 2008-5-13 14:07

地址要对..而且它支持格式有限

wuhui5201717 发表于 2008-5-17 16:58

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

import javax.swing.*;
import java.io.File;

class AudioPlayDemo extends JFrame implements ActionListener {
    boolean looping = false;
    File file1 = new File("music\\明天会更好.wav");
    AudioClip sound1;
    AudioClip chosenClip;

    JButton playButton = new JButton("播放");
    JButton loopButton = new JButton("循环播放");   
    JButton stopButton = new JButton("停止");
    JLabel status = new JLabel("选择播放文件");
    JPanel controlPanel = new JPanel();
    Container container = getContentPane();

    public AudioPlayDemo() {
        try {
            sound1 = Applet.newAudioClip(file1.toURL());
            chosenClip = sound1;
        } catch(OutOfMemoryError e){
            System.out.println("内存溢出");
            e.printStackTrace();
        } catch(Exception e){
            e.printStackTrace();
        }
        playButton.addActionListener(this);
        loopButton.addActionListener(this);
        stopButton.addActionListener(this);
        stopButton.setEnabled(false);

        controlPanel.add(playButton);
        controlPanel.add(loopButton);
        controlPanel.add(stopButton);

        container.add(controlPanel, BorderLayout.CENTER);
        container.add(status, BorderLayout.SOUTH);

        setSize(300, 130);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
    }

public void actionPerformed(ActionEvent event) {
    if (chosenClip == null) {
        status.setText("声音未载入");
        return;
    }
    Object source = event.getSource(); //获取用户洗涤激活的按钮

    if (source == playButton) {
        stopButton.setEnabled(true);
        loopButton.setEnabled(true);
        chosenClip.play();
        status.setText("正在播放");
    }

    if (source == loopButton) {
        looping = true;
        chosenClip.loop();
        loopButton.setEnabled(false);
        stopButton.setEnabled(true);
        status.setText("正在循环播放");
    }
    if (source == stopButton) {
        if (looping) {
            looping = false;
            chosenClip.stop();
            loopButton.setEnabled(true);
        } else {
            chosenClip.stop();
        }
        stopButton.setEnabled(false);
        status.setText("停止播放");
      }
    }
    public static void main(String s[]) {
    new AudioPlayDemo();
    }
}

自己看,根据需要修改下代码,提取自己想要的代码

wuhui5201717 发表于 2008-5-17 17:01

格式不能是Mp3,wma的格式
可以把自己想要的歌曲在千千静听里把他转换成wav格式,但是wav格式的歌占的空间很大

killer_l 发表于 2008-5-17 20:26

播放mid....

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.