音乐播放器.docx

上传人:b****1 文档编号:2775295 上传时间:2023-05-04 格式:DOCX 页数:13 大小:55.79KB
下载 相关 举报
音乐播放器.docx_第1页
第1页 / 共13页
音乐播放器.docx_第2页
第2页 / 共13页
音乐播放器.docx_第3页
第3页 / 共13页
音乐播放器.docx_第4页
第4页 / 共13页
音乐播放器.docx_第5页
第5页 / 共13页
音乐播放器.docx_第6页
第6页 / 共13页
音乐播放器.docx_第7页
第7页 / 共13页
音乐播放器.docx_第8页
第8页 / 共13页
音乐播放器.docx_第9页
第9页 / 共13页
音乐播放器.docx_第10页
第10页 / 共13页
音乐播放器.docx_第11页
第11页 / 共13页
音乐播放器.docx_第12页
第12页 / 共13页
音乐播放器.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

音乐播放器.docx

《音乐播放器.docx》由会员分享,可在线阅读,更多相关《音乐播放器.docx(13页珍藏版)》请在冰点文库上搜索。

音乐播放器.docx

音乐播放器

应用名称:

简易音乐播放器

实现功能:

开始播放,暂停播放,停止播放,播放下一首,播放上一首,拖动条拖动任意位置播放,播放开始后用拖动条显示播放进度,显示一首歌的需要播放时间和当前播放到什么时间。

歌曲添加:

使用DDMS上传到代码中设置的播放路径中。

最终实现后效果图:

picture1

picture2

设计及实现代码:

1.Mp3Player.java 文件

packagecom.jacky.multimedia;

importjava.io.File;

importjava.io.FilenameFilter;

importjava.io.IOException;

importjava.util.ArrayList;

importjava.util.List;

importandroid.app.ListActivity;

importandroid.media.MediaPlayer;

importandroid.media.MediaPlayer.OnCompletionListener;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.view.KeyEvent;

importandroid.view.View;

importandroid.widget.ArrayAdapter;

importandroid.widget.ImageButton;

importandroid.widget.ListView;

importandroid.widget.SeekBar;

importandroid.widget.SeekBar.OnSeekBarChangeListener;

importandroid.widget.TextView;

publicclassMp3PlayerextendsListActivity{

/**Calledwhentheactivityisfirstcreated.*/

/*定义5个图像按钮*/

privateImageButton   mFrontImageButton   =null;

privateImageButton   mStartImageButton   =null;

privateImageButton   mPauseImageButton   =null;

privateImageButton   mStopImageButton   =null;

privateImageButton   mNextImageButton   =null;

/*定义进度handler,显示百分比进度*/

HandlermPercentHandler=newHandler();

/*定义拖动条*/

privateSeekBar    mSeekBar=null;

/*定义显示文本框*/

privateTextViewcurProgressText=null;

privateTextViewcurtimeAndTotaltime=null;

/*定于一个多媒体对象*/

publicMediaPlayer   mMediaPlayer      =null;

/*定于一个数据播放列表,用来存放从指定文件中搜索到的文件*/

privateListmMusicList=newArrayList();

/*定义在播放列表中的当前选择项*/

privateintcurrentListItme=0;

/*定义要播放的文件夹路径*/

privatestaticfinalStringMUSIC_PATH=newString("/mnt/sdcard/");

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/*更新播放列表*/

musicList();

/*初始化多媒体对象*/

mMediaPlayer      =newMediaPlayer();

/*初始化图像按钮*/

mFrontImageButton=(ImageButton)findViewById(R.id.LastImageButton);

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);

/*监听停止按钮*/

mStopImageButton.setOnClickListener(newImageButton.OnClickListener()

{

@Override

publicvoidonClick(Viewv)

{

/*判断是否正在播放歌曲*/

if(mMediaPlayer.isPlaying())

{

/*如果在播放歌曲时,按下开始按钮,则重开开始播放*/

mMediaPlayer.reset();

}

}

});

/*监听开始按钮*/

mStartImageButton.setOnClickListener(newImageButton.OnClickListener()

{

@Override

publicvoidonClick(Viewv)

{  /*播放当前选择歌曲,通过listView列表中onListItemClick方法得到选择的时第几项*/

playMusic(MUSIC_PATH+mMusicList.get(currentListItme));

/*开始播放歌曲时,同步进行更新拖动条进度*/

startSeekBarUpdate();

}   

}); 

/*监听暂停按钮*/

mPauseImageButton.setOnClickListener(newImageButton.OnClickListener()

{

publicvoidonClick(Viewview)

{

if(mMediaPlayer.isPlaying())

{

/*如果有播放歌曲,暂停*/

mMediaPlayer.pause();

}

else

{

/*如果没有播放歌曲,则开始播放*/

mMediaPlayer.start();

}

}

});

/*监听下一首按钮*/

mNextImageButton.setOnClickListener(newImageButton.OnClickListener()

{

@Override

publicvoidonClick(Viewarg0)

{  

nextMusic();

}

});

/*监听上一首按钮*/

mFrontImageButton.setOnClickListener(newImageButton.OnClickListener()

{

@Override

publicvoidonClick(Viewarg0)

{

FrontMusic();

}

});

/*监听拖动条*/

mSeekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()

{                              

publicvoidonProgressChanged(SeekBarseekBar,intprogress,

booleanfromUser){

//TODOAuto-generatedmethodstub

/*如果拖动进度发生改变,则显示当前进度值*/

curProgressText.setText("当前进度:

"+progress);   

}

@Override

publicvoidonStartTrackingTouch(SeekBarseekBar){

//TODOAuto-generatedmethodstub

curProgressText.setText("拖动中...");

}

@Override

publicvoidonStopTrackingTouch(SeekBarseekBar){

//TODOAuto-generatedmethodstub

intdest=seekBar.getProgress();   

intmMax=mMediaPlayer.getDuration();

intsMax=mSeekBar.getMax();

mMediaPlayer.seekTo(mMax*dest/sMax);

}

}

);

}

/*按键处理时间,当按下返回按键时的处理方法*/

publicbooleanonKeyDown(intkeyCode,KeyEventevent)

{

if(keyCode== KeyEvent.KEYCODE_BACK)

{

mMediaPlayer.stop();

mMediaPlayer.release();

this.finish();

returntrue;

}

returnsuper.onKeyDown(keyCode,event);

}

/*ListView选择项监听方法,即当前鼠标在列表中选择的第几项*/

protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid)

{

currentListItme=position;

playMusic(MUSIC_PATH+mMusicList.get(position));

}

/*更新播放列表*/

publicvoidmusicList()

{

/*从指定的路径中读取文件,并与播放列表关联*/

Filehome=newFile(MUSIC_PATH);

/*读取指定类型的文件,在本程序,指定播放类型为mp3*/

if(home.listFiles(newMusicFilter()).length>0)

{

/*读取文件*/

for(Filefile:

home.listFiles(newMusicFilter()))

{

mMusicList.add(file.getName());

}

/*播放文件与播放列表关联*/

ArrayAdaptermusicList=newArrayAdapter(Mp3Player.this,R.layout.musicitme,mMusicList);

setListAdapter(musicList);

}

}

/*播放指定路径中的音乐*/

privatevoidplayMusic(Stringpath)

{

try

{

/*重置多媒体*/

mMediaPlayer.reset();

/*读取mp3文件*/

mMediaPlayer.setDataSource(path);

/*准备播放*/

mMediaPlayer.prepare();

/*开始播放*/

mMediaPlayer.start();

/*监听播放是否完成*/

mMediaPlayer.setOnCompletionListener(newOnCompletionListener()

{

publicvoidonCompletion(MediaPlayerarg0)

{

/*播放完当前歌曲,自动播放下一首*/

nextMusic();

}

});

}catch(IOExceptione){}

}

/*播放下一首*/

privatevoidnextMusic()

{

if(++currentListItme>=mMusicList.size())

{

currentListItme=0;

}

else

{

playMusic(MUSIC_PATH+mMusicList.get(currentListItme));

}

}

/*播放上一首歌曲*/

privatevoidFrontMusic()

{

if(--currentListItme>=0)

{

currentListItme=0;

}

else

{

playMusic(MUSIC_PATH+mMusicList.get(currentListItme));

}

}

/*更新拖动条进度*/

publicvoidstartSeekBarUpdate()

{

mPercentHandler.post(start);

}

Runnablestart=newRunnable(){

@Override

publicvoidrun(){

//TODOAuto-generatedmethodstub

mPercentHandler.post(updatesb);

//用一个handler更新SeekBar

}

};

Runnableupdatesb=newRunnable(){

@Override

publicvoidrun(){

//TODOAuto-generatedmethodstub

intposition=mMediaPlayer.getCurrentPosition();             

intmMax=mMediaPlayer.getDuration();

intsMax=mSeekBar.getMax();          

mSeekBar.setProgress(position*sMax/mMax);

curtimeAndTotaltime.setText("当前播放时间:

"+position/1000+"秒"+"\n歌曲总时间:

"+mMax/1000+"秒");

mPercentHandler.postDelayed(updatesb,1000);

//每秒钟更新一次

}

};

}

/*播放文件选择类*/

classMusicFilterimplementsFilenameFilter

{

publicbooleanaccept(Filedir,Stringname)

{

/*指定扩展名类型*/

return(name.endsWith(".mp3"));

}

}

2.main.xls文件

xmlversion="1.0"encoding="utf-8"?

>

xmlns:

android="

android:

orientation="vertical"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

>

android:

id="@id/android:

list" 

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

layout_weight="1"

android:

drawSelectorOnTop="false"/>

android:

id="@+id/LastImageButton"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content" 

android:

layout_x="10px"

android:

layout_y="70px"

android:

src="@drawable/last" 

/>

android:

id="@+id/StopImageButton"

android:

layout_height="wrap_content" 

android:

layout_width="wrap_content"

android:

layout_x="70px"

android:

layout_y="70px"

android:

src="@drawable/stop"

/> 

android:

id="@+id/StartImageButton"

android:

layout_height="wrap_content" 

android:

layout_width="wrap_content"

android:

layout_x="130px"

android:

layout_y="70px"

android:

src="@drawable/start"

/>

android:

id="@+id/PauseImageButton"

android:

layout_height="wrap_content" 

android:

layout_width="wrap_content"

android:

layout_x="190px"

android:

layout_y="70px"

android:

src="@drawable/pause"

/> 

android:

id="@+id/NextImageButton"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_x="250px"

android:

layout_y="70px"

android:

src="@drawable/next" 

/>

id="@+id/SeekBar01"

android:

layout_height="wrap_content"

android:

layout_x="0dp"

android:

layout_y="200dp"

android:

layout_width="fill_parent"

android:

max="100"

android:

progress="0"

android:

secondaryProgress="50"

android:

visibility="visible">

layout_height="wrap_content"android:

layout_width="fill_parent"android:

layout_y="250dp"android:

id="@+id/currentProgress">

layout_height="wrap_content"android:

layout_width="fill_parent"android:

layout_y="300dp"android:

id="@+id/curtimeandtotaltime">

3.musictime.xls

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

id="@+id/TextView01"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

text="@string/hello"/>

4.AndroidManifest.xls

xmlversion="1.0"encoding="utf-8"?

>

android="

package="com.jacky.multimedia"

android:

versionCode="1"

android:

versionName="1.0">

icon="@drawable/icon"android:

label="@string/app_name">

name=".Mp3Player"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2