支持暂停和继续操作的WAV音频播放
2008-10-14 20:55
501 查看
import java.io.InputStream;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;
public class Exec extends MIDlet {
private Display display;
DrawPanel dp = new DrawPanel();
public Exec() {
display = Display.getDisplay(this);
}
public void startApp() {
display.setCurrent(dp);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class DrawPanel extends Canvas {
InputStream in = null;
Player p = null;
int length;
int current = 0;
Thread thread = new Thread(new PlayerUpdater());
boolean flag = false;
public DrawPanel() {
try {
in = getClass().getResourceAsStream("/musics/music.wav");
p = Manager.createPlayer(in, "audio/x-wav");
p.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
length = (int) (p.getDuration() / 1000 / 1000);
thread.start();
}
protected void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
g.setColor(255, 255, 255);
g.fillRect(0, 0, width, height);
g.setColor(0, 0, 0);
g.fillRect(width / 4, height / 4,
(int) (width / 2 * current / (double) length), 20);
}
// 新增一个线程处理进度条,定义一个内部类
class PlayerUpdater implements Runnable {
public void run() {
try {
while (true) {
if (flag) {
Thread.sleep(1000);
current++;
repaint();
if (current >= length)
break;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
protected void showNotify() {
flag = true;
try {
p.prefetch();
p.setMediaTime(current * 1000 * 1000L);
p.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
protected void hideNotify() {
try {
p.stop();
} catch (Exception e) {
System.out.println(e.getMessage());
}
flag = false;
}
}
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;
import javax.microedition.midlet.MIDlet;
public class Exec extends MIDlet {
private Display display;
DrawPanel dp = new DrawPanel();
public Exec() {
display = Display.getDisplay(this);
}
public void startApp() {
display.setCurrent(dp);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class DrawPanel extends Canvas {
InputStream in = null;
Player p = null;
int length;
int current = 0;
Thread thread = new Thread(new PlayerUpdater());
boolean flag = false;
public DrawPanel() {
try {
in = getClass().getResourceAsStream("/musics/music.wav");
p = Manager.createPlayer(in, "audio/x-wav");
p.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
length = (int) (p.getDuration() / 1000 / 1000);
thread.start();
}
protected void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
g.setColor(255, 255, 255);
g.fillRect(0, 0, width, height);
g.setColor(0, 0, 0);
g.fillRect(width / 4, height / 4,
(int) (width / 2 * current / (double) length), 20);
}
// 新增一个线程处理进度条,定义一个内部类
class PlayerUpdater implements Runnable {
public void run() {
try {
while (true) {
if (flag) {
Thread.sleep(1000);
current++;
repaint();
if (current >= length)
break;
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
protected void showNotify() {
flag = true;
try {
p.prefetch();
p.setMediaTime(current * 1000 * 1000L);
p.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
protected void hideNotify() {
try {
p.stop();
} catch (Exception e) {
System.out.println(e.getMessage());
}
flag = false;
}
}
相关文章推荐
- 关于Java音频播放不循环和暂停、继续播放(非Android)
- 安卓AudioRecord实现录音和播放,可以暂停和获取声音的大小,格式为amr和wav,可以对音频进行加密
- 设计一个音乐播放器,用List列表显示手机中所有音乐,支持播放、暂停、继续、上一首、下一首等功能。
- js控制wav音频暂停、播放,兼容IE
- 使用service的startservice 和bindservice方法实现音乐的播放、暂停、继续
- Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例
- [转]高手看过来:winform里用C#怎么播放音频文件(例如:*.wav)?C#中怎样调用api函数和com组件?
- iphone利用AudioQueue播放音频文件(mp3,aac,caf,wav等)
- iOS利用AudioQueue播放音频文件(mp3,aac,caf,wav等)
- ios平台cocos2d-x播放音频、视频、音效的Demo(支持网络视频)
- 支持取消操作和暂停操作的Backgroundworker
- 动画播放器的控制动画和音频的播放和暂停
- 判断Uri对应的ContentProvider所操作的数据库u存在,及DownloadManager的暂停,继续
- visual studio 2010环境下在C#程序中嵌入、播放 wav音频文件 图文介绍
- iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
- android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题
- ftp 操作,支持断点续传或者继续下载。
- 使用OSS播放WAV音频
- 音频的点击播放与暂停
- iphone利用AudioQueue播放音频文件(mp3,aac,caf,wav等)