当用户按下按钮时,程序应该播放fitnessgram pacer测试。第二次按下按钮后,音频停止。再次按下按钮后,程序应重新从头开始播放测试。下面是我的代码:
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.net.URL;
import javax.sound.sampled.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class aMeme extends JFrame implements ActionListener{
public JButton button;
public boolean check;
public boolean audio;
public void paint(Graphics g){
if (check == true){
BufferedImage img = null;
try{
img = ImageIO.read(newFile("C:/Users/kebrobst18/Downloads/Fitnessgram.png"));
} catch (IOException e){
}
g.drawImage(img, 0, 0, this);
}
}
public void start(){
setLayout(new BorderLayout());
button=new JButton();
button.setPreferredSize(new Dimension(200, 100));
button.setText("Start/Stop");
button.addActionListener(this);
add(button, BorderLayout.SOUTH);
setSize(500,500);
setVisible(true);
audio = false;
}
public void actionPerformed(ActionEvent e){
check = true;
repaint();
try{
URL fg = new URL("http://sendeyo.com/up/8658f011a4c712b5da42f74af77729fe.wav");
Clip fitness = AudioSystem.getClip();
AudioInputStream gram = AudioSystem.getAudioInputStream(fg);
fitness.open(gram);
if (audio == false){
fitness.start();
audio = true;
} else if (audio == true){
fitness.stop();
audio = false;
}
} catch (LineUnavailableException f){
}
catch (UnsupportedAudioFileException | IOException f) {
}
}
public static void main(String args[]){
aMeme x = new aMeme();
x.start();
}
}
发布于 2017-05-03 01:16:13
播放同一音频文件的简单示例:
import java.awt.event.*;
import javax.swing.*;
import javax.sound.sampled.*;
import java.net.URL;
import java.io.*;
class SoundTest {
public static void main(String[] args) throws Exception {
URL urlToSound = new URL("file:c:/java/gun1.wav");
// URL urlToSound = new URL("file:c:/java/flyby1.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(urlToSound);
final Clip clip = AudioSystem.getClip();
clip.open(ais);
JButton button = new JButton("Bird Sounds");
button.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent ae) {
clip.setFramePosition(0);
clip.start();
}
} );
JOptionPane.showMessageDialog(null, button);
}
}
https://stackoverflow.com/questions/43742929
复制相似问题