背景音乐
来源:互联网 发布:linux代码学习 编辑:程序博客网 时间:2024/03/29 02:12
一般添加声音是靠两种方法实现的。一种是MediaPlayer,一种是SoundPool。这两种方法的区别是MediaPlayer可以存储较大的音频文件,载入稍慢,不支持同时播放。而SoundPool只能存储较小的音频文件,载入较快,支持同时播放。这样就很显然了,MediaPlayer用来实现背景音乐,而SoundPool用来实现音效。
package my.Game.audio;
import java.io.IOException;
import com.threed.jpct.Logger;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.media.AudioManager;
import android.media.MediaPlayer;
public class MyMusic {
protected static MediaPlayer mediaPlayer;
protected static boolean mustResume = false;
private static Activity act;
public MyMusic(Activity act){
mediaPlayer = new MediaPlayer();
MyMusic.act=act;
}
public static void prepareMediaPlayer(String file) {
if(mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
AssetFileDescriptor afd = null;
try {
afd = act.getAssets().openFd("sound/"+file+".ogg");
} catch (Exception e) {
e.printStackTrace();
Logger.log("Tried creating Music with missing asset ... " + file);
System.exit(0);
return;
}
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
afd.close();
} catch (IOException e) {
e.printStackTrace();
Logger.log("Error setting data source in Music.play, IO exception");
System.exit(0);
return;
} catch (IllegalStateException e) {
e.printStackTrace();
Logger.log("Error setting data source in Music.play, fail ...");
return;
}
try {
mediaPlayer.prepare();
} catch (Exception e) {
e.printStackTrace();
Logger.log("Error preparing MediaPlayer");
System.exit(0);
return;
}
}
public static void play(boolean loop) {
if(mediaPlayer == null) {
Logger.log("error:MediaPlayer hasn't prepared.");
return;
}
mediaPlayer.setLooping(loop);
mediaPlayer.start();
}
public static void stop() {
if(mediaPlayer == null) {
Logger.log("error:No mediaPlayer is playing.");
return;
}
mediaPlayer.stop();
}
public static void pause() {
if(mediaPlayer == null) {
Logger.log("error:No mediaPlayer is playing.");
return;
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- *********背景音乐*******
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- 背景音乐
- leetcode 226 :Invert Binary Tree
- CFStringTransform的使用 :汉字转拼音、全角转半角等
- 用wireshark解析应用层存储包
- 可记住用户名和密码的登录界面
- 详细解说STL string
- 背景音乐
- Oracle 存储过程创建和执行入门实例
- C++ Primer学习笔记(7)——指针形参和引用形参的比较
- 关于SoftReference,WeakReference的简单了解
- eclipse中maven插件上传项目jar包到私服
- Windows显示驱动中读取EDID
- Android ListView使用详解
- java基础之基本语法
- [华为机试练习题]50.求M的N次方的最后三位