最近学渣一直在看官网的MediaPlayer的介绍,不过还没有看完,现在只是做一个简单的demo,只有两个按钮,一个是播放,一个是暂停。现在只能播放指定路径的一首歌曲,效果如下:
代码如下:
public class MainActivity extends BaseActivity {
MediaPlayer mediaPlayer;
//本地歌曲的路径
String path = "/storage/sdcard1/Music/浪漫满屋.mp3";
public MainActivity() {
super(R.string.left_and_right);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置mo's
getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//设置主页面的布局
setContentView(R.layout.main);
//初始化
init();
//初始化播放按钮
Button playButton = (Button)findViewById(R.id.playButton);
playButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
play();
}
});
//初始化暂停按钮
Button pauseButton = (Button)findViewById(R.id.pauseButton);
pauseButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
pause();
}
});
//将左侧滑动页面用fragement代替
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame, new SampleListFragment2())
.commit();
//设置第二个SlidingMenu
getSlidingMenu().setSecondaryMenu(R.layout.menu_frame_two);
getSlidingMenu().setSecondaryShadowDrawable(R.drawable.shadowright);
//将右侧滑动页面用fragement代替
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame_two, new SampleListFragment())
.commit();
}
//初始化音乐播放
void init(){
//进入Idle
mediaPlayer = new MediaPlayer();
try {
//初始化
mediaPlayer.setDataSource(path);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//prepare
// 通过异步的方式装载媒体资源
mediaPlayer.prepareAsync();
/*mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// 装载完毕回调
}
}); */
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//测试播放音乐
void play(){
mediaPlayer.start();
}
//暂停音乐
private void pause() {
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
}
//activity 退出时,停止播放音乐,释放资源
@Override
protected void onDestroy() {
// 在activity结束的时候回收资源
if (mediaPlayer != null && mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}
super.onDestroy();
}
//actionbar的设置
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.actionbar, menu);
return true;
}
//actionbar的选择
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//点击home键
//显示左侧侧滑动页面
getSlidingMenu().showMenu();
return true;
case R.id.action_settings:
//点击右侧menu键
//显示右侧滑动页面
getSlidingMenu().showSecondaryMenu();
return true;
}
return super.onOptionsItemSelected(item);
}
}
现在只是一个简单的demo,播放的音乐也是本地指定的路径,大家在用这个例子时,记得换成自己歌曲的路径,具体的MediaPlayer的相关信息还没有完全介绍,学渣在
另一篇博客中介绍了MediaPlayer