j2me模板,音乐的控制

来源:互联网 发布:精油手工皂 知乎 编辑:程序博客网 时间:2024/05/21 10:10
/**
* 类说明:音乐的控制
* ware audio files audio/x-wav
* au audio/basic
* mp3 audio/mpeg
* midi audio/midi
* tone audio/x-tone-sep
* mpeg video/mpeg
*
@author 作者: User
*
@version 创建时间:2011-3-22 下午10:02:59
*/

import java.io.InputStream;

import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.control.VolumeControl;

public class Music {
private static Music instance;

private Player player;// 创建一个音乐播放器
private VolumeControl volumeControl = null;// 声音控制
private int volume = 50;// 音量的初始值
private static final int MAX = 100;// 音量最大值
private static final int MIN = 0;// 音量最小值
private boolean isplay = false;//是否真正播放

private Music() {

}

// 采用单例模式 返回本类对象
static Music getInstance() {
if (instance == null) {
instance
= new Music();
}
return instance;
}

// 播放音乐
public void playMusic() {
player
= createPlayer("/city.mid", "audio/midi");// 创建音乐播放器
volumeControl = (VolumeControl) player.getControl("VolumeControl");// 得到音乐控制器
isplay = true;
startPlayer(player);
// 开始播放音乐
}

// 停止音乐播放
public void stopMusic() {
try {
if (player != null)
player.stop();
player
= null;
isplay
= false;
}
catch (Exception e) {
e.printStackTrace();
}
}

// 加大音量
public void addVolume() {
if (volumeControl != null) {
volume
+= 10;
if (volume > MAX)
volume
= MAX;
volumeControl.setLevel(volume);
}
}

public boolean isPlay() {
return isplay;
}

// 减小音量
public void subVolume() {
if (volumeControl != null) {
volume
-= 10;
if (volume < MIN)
volume
= MIN;
volumeControl.setLevel(volume);
}
}

// 设置音量
public void setVolume(int volue) {
if (volumeControl != null) {
volumeControl.setLevel(volue);
}
}
// 开始播放
private void startPlayer(Player p) {
if (p != null) {
try {
p.stop();
p.setLoopCount(
-1);
p.start();
}
catch (MediaException me) {
me.printStackTrace();
}
}
}

// 创建音乐播放器
private Player createPlayer(String filename, String format) {
Player p
= null;
try {
InputStream is
= getClass().getResourceAsStream(filename);// 得到音乐文件输入流
p = Manager.createPlayer(is, format);
p.prefetch();
}
catch (Exception ioe) {
ioe.printStackTrace();
}
return p;
}
}
原创粉丝点击