当前位置:文档之家› 安卓音乐播放器实现代码

安卓音乐播放器实现代码

/*监听暂停按钮*/ mPauseImageButton.setOnClickListener(new ImageButton.OnClickListener() { public void onClick(View view) { if (mMediaPlayer.isPlaying()) { /*如果有播放歌曲,暂停*/ mMediaPlayer.pause(); } else { /*如果没有播放歌曲,则开始播放*/ mMediaPlayer.start(); } } });
/*定义进度 handler,显示百分比进度*/ Handler mPercentHandler = new Handler();
/*定义拖动条*/ private SeekBar mSeekBar=null;
/*定义显示文本框*/ private TextView curProgressText=null; private TextView curtimeAndTotaltime=null;
1. Mp3Player.java 文件
package com.jacky.multimedia;
import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List;
mMediaPlayer.seekTo(mMax*dest/sMax);
} } );
}
/*按键处理时间,当按下返回按键时的处理方法*/ public boolean onKeyDown(int keyCode, KeyEvent event) { if ( keyCode == KeyEvent.KEYCODE_BACK) { mMediaPlayer.stop(); mMediaPlayer.release(); this.finish(); return true; } return super.onKeyDown(keyCode, event); }
@Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub curProgressText.setText("拖动中..."); }
@Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub int dest = seekBar.getProgress(); int mMax = mMediaPlayer.getDuration(); int sMax = mSeekBar.getMax();
mMediaPlayer.reset(); } } });
/*监听开始按钮*/ mStartImageButton.setOnClickListener(new ImageButton.OnClickListener() { @Override public void onClick(View v) { /*播放当前选择歌曲,通过 listView 列表中 onListItemClick 方法得到选择的时第几项 */ playMusic(MUSIC_PATH + mMusicList.get(currentListItme)); /*开始播放歌曲时,同步进行更新拖动条进度*/ startSeekBarUpdate(); } });
/*ListView 选择项监听方法,即当前鼠标在列表中选择的第几项*/ protected void onListItemClick(ListView l, View v, int position, long id) { currentListItme = position; playMusic(MUSIC_PATH + mMusicList.get(position)); }
/* 定于一个多媒体对象*/
public MediaPlayer mMediaPlayer
= null;
/*定于一个数据播放列表,用来存放从指定文件中搜索到的文件*/ private List<String> mMusicList = new ArrayList<String>();
/* 定义在播放列表中的当前选择项 */ private int currentListItme = 0;
/*更新播放列表*/
public void musicList()
{
/*从指定的路径中读取文件,并与播放列表关联*/
File home = new File(MUSIC_PATH);
/*读取指定类型的文件,在本程序,指定播放类型为 mp3*/
if (home.listFiles(new MusicFilter()).length > 0)
import android.app.ListActivity; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.ListView; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView;
/*监听停止按钮*/ mStopImageButton.setOnClickListener(new ImageButton.OnClickListener() { @Override public void onClick(View v) { /*判断是否正在播放歌曲*/ if (mMediaPlayer.isPlaying()) { /*如果在播放歌曲时,按下开始按钮,则重开开始播放*/
{
super.onCreate(savedInstanceState);
setContentView(yout.main);
/* 更新播放列表*/
musicList();
/*初始化多媒体对象*/
mMediaPlayer
= new MediaPlayer();
/*初始化图像按钮*/ mFrontImageButton = (ImageButton) findViewById(stImageButton); mStopImageButton = (ImageButton) findViewById(R.id.StopImageButton); mStartImageButton = (ImageButton) findViewById(R.id.StartImageButton); mPauseImageButton = (ImageButton) findViewById(R.id.PauseImageButton); mNextImageButton = (ImageButton) findViewById(R.id.NextImageButton);
/*初始化拖动条和当前进度显示值*/ mSeekBar=(SeekBar)findViewById(R.id.SeekBar01); curProgressText=(TextView)findViewById(R.id.currentProgress); curtimeAndTotaltime=(TextView)findViewById(R.id.curtimeandtotaltime);
/*定义要播放的文件夹路径*/ private static final String MUSIC_PATH = new String("/mnt/sdcard/");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
public class Mp3Player extends ListActivity { /** Called when the activity is first created. */ /* 定义 5 个图像按钮 */ private ImageButton mFrontImageButton = null; private ImageButton mStartImageButton = null; private ImageButton mPauseImageButton = null; private ImageButton mStopImageButton = null; private ImageButton mNextImageButton = null;
/*监听拖动条*/ mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub /*如果拖动进度发生改变,则显示当前进度值*/ curProgressText.setText("当前进度: "+progress); }
相关主题