尼克和博士的故事12(J2ME入门的好书)

J2ME初学者必看的书

音 乐

本讲我们学习音乐。 哇,好兴奋啊! 音乐可以使表现力大大提高!尼克,可要努力学哦!

1.播放音乐

下面是本次讲座使用的模板程序。我们将把本讲内容写进下面的程序进行讲解。

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
/**
* 播放音乐的简单范例
*/

public class Audio_Test extends MIDlet{

private Display display;
private Audio_Canvas canvas;

/**
* 构造函数
*/
public Audio_Test(){
canvas = new Audio_Canvas();
display = Display.getDisplay(this);
}

public void startApp(){
display.setCurrent(canvas);
}

public void pauseApp(){}

public void destroyApp(boolean unconditional){}

}


import javax.microedition.lcdui.*;
import com.nec.media.*;
/**
* 音频canvas
*/
public class Audio_Canvas
extends Canvas
implements Runnable, AudioListener{

private AudioClip audio;//音乐数据
private Thread th;

/**
* 构造函数
*/
public Audio_Canvas(){
 //下面记述处理

th = new Thread(this);
th.start();
}

/**
* 描绘处理
*/
public void paint(Graphics g){
}

/**
* 音频事件处理
*/
public void audioAction(AudioClip sound, int event, int param){
}

/**
* 线程处理
* 刷新显示
*/
public void run(){
while(true){
repaint();
}
}
}



首先,读取音乐数据,进行播放。 是,博士。 在Audio_Canvas类的构造函数里写着下面的程序。audio = Media.getAudioClip("/bgm.mid");//读取音乐数据
audio.play();//播放音乐数据

读取音乐数据,要用到AudioClip类啊。
"/bgm.mid"是文件的pass名么? 没错啊。需要使用AudioClip类里面的play方法进行播放。改变一下程序,运行试试吧。方法 作用 play() 播放音乐数据 stop() 停止音乐数据    


博士,音乐数据可以播放了! 恩。这就对了。 但是博士,音乐数据除了播放和停止之外,还有什么用途呀? 当然,还有许多其他的功能。你可以参考一下下面的表。
方法 作用 getChannel() 取得音乐数据的信道(channel数) getLapsedTime() 以毫秒单位取得演奏的音乐数据播放的时间 getTempo() 取得音乐数据的速度(tempo) getTime() 取得音乐数据的播放时间 setLoopCount (int count) 设定演奏的音乐数据的重复播放次数

2.显示播放时间

下面,就对这个程序进行修改吧。
根据上述功能描绘出演奏的音乐数据播放的时间。 博士,这里可以使用"getLapsedTime方法"吗? 可以的。顺便说一下,描绘处理是写在paint方法里的。 这是当然了!

/**
* 描绘处理
*/
public void paint(Graphics g){
g.setColor(255,255,255);
g.fillRect(0,0,getHeight(),getWidth());


尼克和博士的故事12(J2ME入门的好书)相关文档

最新文档

返回顶部