音乐播放(游戏中的音效)

音乐播放(游戏中的音效)


游戏中是肯定和程序打包发布的。这样的音乐就没有放在Sdcard中,一般会放在应用目录下的“res/raw”下。那如何实现音乐播放呢?
其实很简单呐,我只不过把setDataSource()方法改成create()方法来指定资源索引的MediaPlayer对象。


package com.zzl.mediaplayer;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;

/**
* 河北、衡水市、武强县 3月16日晚
* zzl
*/
public class Mp32Activity extends Activity {
/** Called when the activity is first created. */
private TextView text = null;
private ImageButton Start = null;
private ImageButton Pause = null;
private ImageButton Stop = null;
private MediaPlayer mediaPlayer = null;
private boolean isPlaying = false;
private boolean isPaused = false;
private boolean isReleased = false;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 构建MediaPlayer对象
mediaPlayer = new MediaPlayer();

text = (TextView) findViewById(R.id.text);

Start = (ImageButton) findViewById(R.id.Start);
Start.setOnClickListener(new StartListener());

Pause = (ImageButton) findViewById(R.id.Pause);
Pause.setOnClickListener(new PauseListener());

Stop = (ImageButton) findViewById(R.id.Stop);
Stop.setOnClickListener(new StopListener());
}

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 开始播放
private class StartListener implements OnClickListener {
public void onClick(View v) {
if (!isPlaying) {

mediaPlayer = MediaPlayer.create(Mp32Activity.this, R.raw.f4);
mediaPlayer.setLooping(true);
mediaPlayer.start();
text.setText("音乐正在播放中......");
isPlaying = true;
isReleased = false;
isPaused = false;
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mediaPlayer.release();
}
});
}
}
}

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 暂停
private class PauseListener implements OnClickListener {
public void onClick(View v) {
if (mediaPlayer != null) {
if (!isReleased) {
if (!isPaused) {
mediaPlayer.pause();
isPaused = true;
isPlaying = true;
text.setText("播放暂停中......");
} else {
mediaPlayer.start();
isPaused = false;
isPlaying = true;
text.setText("播放重新播放......");
}
}
}
}
}

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 停止
private class StopListener implements OnClickListener {
public void onClick(View v) {
if (isPlaying) {
if (!isReleased) {
mediaPlayer.stop();
mediaPlayer.release();
isReleased = true;
}
isPlaying = false;
text.setText("播放停止......");
}
}
}

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (!isReleased) {
mediaPlayer.stop();
mediaPlayer.release();
isReleased = true;
}
this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值