这几天无聊,觉得用手机听歌操作不爽,于是产生了个自己做个播放器的冲动,我想一步一步来,先从最简单开始:
在 这个程序之前,准备了几个小知识:
一: protected void onCreate(Bundle savedInstanceState);
Activity在创建时调用此函数;
二: 将音频文件放到你的工程的res/raw文件夹中,在这个文件夹中,Eclipse插件将会找到它,同时,会将这个资源与你的R
类相关联起来;
三: 创建一个MediaPlayer,并使用MediaPlayer.create与资源相关联起来,之后在实例中使用start()方法。
四: MediaPlayer.create(context, resid);
Parameters
context | the Context to use |
---|---|
uri | the Uri from which to get the datasource |
Returns
- a MediaPlayer object, or null if creation failed
动手:首先在layout 文件中设计一个如下图的界面:
参考代码如下:
package com.music;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
//定义3个按钮,分别用于音乐开始,暂停,停止
private Button bn1;
private Button bn2;
private Button bn3;
//定义一个Mediaplayer变量,用来实现播放
MediaPlayer player=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加载音频资源文件
player=MediaPlayer.create(this, R.raw.meilishenhua);
//获得3个按钮
bn1=(Button)findViewById(R.id.button1);
bn2=(Button)findViewById(R.id.button2);
bn3=(Button)findViewById(R.id.button3);
//为3个控制按钮绑定监听器
bn1.setOnClickListener(new Start());
bn2.setOnClickListener(new Pause());
bn3.setOnClickListener(new Stop());
}
//定义开始播放的监听器
class Start implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//判断音乐是否在播放
if(!player.isPlaying())
player.start();
}
}
//定义暂停播放的监听器
class Pause implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(player.isPlaying())
player.pause();
}
}
//定义停止播放的监听器
class Stop implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(player.isPlaying())
player.stop();
}
}
}
运行结果:按下了各个按钮,体会到自己的成果;
注:要将音频文件meilishenhua.mp3放到你的工程的res/raw文件夹中,以R文件中产生相应的 R.raw.meilishenhua;
简单音乐播放器(中):http://blog.youkuaiyun.com/moshihao/article/details/8912833