文档章节

播放音频——音频播放程序

藍色的海
 藍色的海
发布于 2012/04/06 14:18
字数 225
阅读 63
收藏 3
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.JButton;

import javax.swing.JFrame;
public class AudioPlayDemo extends JFrame{
	private AudioClip audioClip; 
	 public AudioPlayDemo() {
		 super();
	        getContentPane().setLayout(null);
	        setTitle("音频播放程序");
	        setBounds(100, 100, 331, 192);
	        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	        final JButton btn_play = new JButton();
	        btn_play.addActionListener(new ActionListener() {
	            public void actionPerformed(final ActionEvent arg0) {
	                URL url = null;  // 定义音频文件的RUL
	                try {
	                    url = new File("E:/music/mid.mid").toURI().toURL();// 获得URL对象
	                    if (audioClip != null)
	                        audioClip.stop();  // 停止播放
	                    audioClip = Applet.newAudioClip(url);// 获取音频剪辑对象
	                    audioClip.play();   // 播放音频
	                } catch (MalformedURLException e) {
	                    e.printStackTrace();
	                }
	                
	            }
	        });
	        btn_play.setText("播    放");
	        btn_play.setBounds(22, 60, 80, 28);
	        getContentPane().add(btn_play);
	        
	        final JButton btn_stop = new JButton();
	        btn_stop.addActionListener(new ActionListener() {
	            public void actionPerformed(final ActionEvent arg0) {
	                if (audioClip != null)
	                    audioClip.stop();   // 停止播放
	            }
	        });
	        btn_stop.setText("停    止");
	        btn_stop.setBounds(115, 60, 80, 28);
	        getContentPane().add(btn_stop);
	        
	        final JButton btn_loop = new JButton();
	        btn_loop.addActionListener(new ActionListener() {
	            public void actionPerformed(final ActionEvent arg0) {
	                if (audioClip != null)
	                    audioClip.loop();    // 循环播放
	            }
	        });
	        btn_loop.setText("循    环");
	        btn_loop.setBounds(208, 60, 80, 28);
	        getContentPane().add(btn_loop);
	 }
	 

		    public static void main(String args[]) {
		        EventQueue.invokeLater(new Runnable() {
		            public void run() {
		                try {
		                    AudioPlayDemo frame = new AudioPlayDemo();
		                    frame.setVisible(true);
		                } catch (Exception e) {
		                    e.printStackTrace();
		                }
		            }
		        });
		    }
}

© 著作权归作者所有

藍色的海
粉丝 3
博文 19
码字总数 7205
作品 0
广州
其他
私信 提问
理解音频焦点 (第1/3部分):常见的音频焦点用例

原文地址:Understanding Audio Focus (Part 1 / 3): Common Audio Focus use cases 原文作者:Nazmul Idris (Naz) 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:o...

Android_开发者
2017/11/17
0
0
iOS开发音频播放基础——AVAudioPlayer的应用

iOS音频开发——AVAudioPlayer应用 AVAudioPlayer是系统提供给我们的一个音频播放类,在AVFoundation框架下,通过它,我们可以实现一个功能强大的音乐播放器。首先,在项目中我们需要导入AVF...

珲少
2015/05/26
0
2
理解音频焦点 (第 2/3 部分):更多的音频焦点用例

原文地址:Understanding Audio Focus (Part 2 / 3): More Audio Focus use cases 原文作者:Nazmul Idris (Naz) 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:oao...

Android_开发者
2017/11/23
0
0
Android API学习 SoundPool 和 MediaPlayer

Android平台中关于音频播放有以下两种方式:   1. SoundPool —— 适合短促且对反应速度比较高的情况(游戏音效或按键声等)   2. MediaPlayer —— 适合比较长且对时间要求不高的情况   ...

antkingwei
2012/04/20
0
0
理解音频焦点 (第 3/3 部分):三个步骤实现音频聚焦

原文地址:Understanding Audio Focus (Part 3 / 3): 3 steps to implementing Audio Focus in your app 原文作者:Nazmul Idris (Naz) 译文出自:掘金翻译计划 本文永久链接:github.com/xi......

Android_开发者
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用lombok配置数据

导入lombok后,便可省略entity中繁琐的get,set方法,并且在xml文件中也应写的更加简洁 1.在pom中添加依赖 <lombok.version>1.16.20</lombok.version> <!-- https://mvnrepository.com/arti......

沉迷于编程的小菜菜
10分钟前
0
0
Linux awk使用案例教程

awk脚本   awk脚本通常由以下3部分构成:  BEGIN{ 这里面放的是执行前的语句 }  END {这里面放的是处理完所有的行后要执行的语句 }  {这里面放的是处理每一行时要执行的...

Linux就该这么学
18分钟前
0
0
Hive(四)——Hive的其他配置

一、

ittzg
19分钟前
0
0
iOS 倒计时

1、SGLCountDown

_____1____
21分钟前
1
0
[算法]图的最短路径算法

Dijkstra算法(单源最短路径,时间复杂度O(n^2),堆优化后O((m+n)logn),贪心算法) Floyd算法(Floyd-Warshall,插点法)(多源最短路径,时间复杂度O(n^3),空间复杂度O(n^2),动态规划算法) ...

Danni3
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部