android="
android:
baselineAligned="false"
android:
layout_width="match_parent"
android:
orientation="vertical"
android:
layout_height="wrap_content">
android:
id="@+id/linearLayout1"
android:
layout_width="match_parent"
android:
orientation="vertical"
android:
layout_height="60dip">
android:
text="正在播放歌曲"
android:
id="@+id/textView1"
android:
layout_width="fill_parent"
android:
textSize="10pt"
android:
layout_height="wrap_content">
android:
layout_height="wrap_content"
android:
textSize="10pt"
android:
layout_width="wrap_content"
android:
id="@+id/textView2"
android:
text="TextView">
android:
layout_height="wrap_content"
android:
layout_width="match_parent"
android:
id="@+id/linearLayout2">
3、创建一个playmusicService类行进后台控制音乐播放功能为Playmusic类用以控制音乐播放功能的方法。
Service代码片段:
publicclassPlayMusicServiceextendsService{
privatestaticMediaPlayermediaPlayer;
privatestaticfinalStringMUSIC_PATH="/sdcard/Music/";
//歌曲是否正在播放
publicstaticbooleanisPlaying=false;
//当前播放的歌曲
publicstaticintCURRENT_SONG=0;
//声明一个Bundle对象,用来放置接收到的Bundle对象
Bundlebundle=null;
@Override
publicIBinderonBind(Intentarg0){
//TODOAuto-generatedmethodstub
returnnull;
}
@Override
publicvoidonCreate(){
//TODOAuto-generatedmethodstub
super.onCreate();
//生成MediaPlayer对象
mediaPlayer=newMediaPlayer();
}
@Override
publicvoidonStart(Intentintent,intstartId){
//TODOAuto-generatedmethodstub
super.onStart(intent,startId);
//从接收到的Bundle对象中获取当前播放歌曲的位置
bundle=intent.getExtras();
CURRENT_SONG=bundle.getInt("position");
//条用playMusic()方法播放歌曲
playMusic(CURRENT_SONG);
}
//播放歌曲方法
publicvoidplayMusic(intposition){
try{
//标志为正在播放
isPlaying=true;
//获取将要播放的歌曲的位置
CURRENT_SONG=position;
System.out.println("当前正在播放的歌曲:
"
+LocalListActivity.list.get(CURRENT_SONG).get("mp3Name"));
mediaPlayer.reset();
mediaPlayer.setDataSource(MUSIC_PATH
+LocalListActivity.list.get(CURRENT_SONG).get("mp3Name"));
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(newOnCompletionListener(){
publicvoidonCompletion(MediaPlayermp){
//TODOAuto-generatedmethodstub
/*
*播放当前歌曲的下一首判断播放的是否最后一首歌,如果是,播放完返回播放第一首
*/
if(++CURRENT_SONG>=LocalListActivity.list.size()){
CURRENT_SONG=0;
}
playMusic(CURRENT_SONG);
//动态更新正在播放歌曲的名字
newPlayingMusicActivity().updatePlaySongName(CURRENT_SONG);
}
});
}catch(Exceptione){
e.printStackTrace();
}
}
//播放上一首歌曲
publicvoidlastMusic(intposition){
//先把MediaPlayer对象切换到stoped状态
if(mediaPlayer!
=null){
if(isPlaying){
mediaPlayer.stop();
CURRENT_SONG=position;
if(CURRENT_SONG<0){
//如果当前播放的是第一首歌,则切换到最后一首
CURRENT_SONG=LocalListActivity.list.size()-1;
}
playMusic(CURRENT_SONG);
}
}
}
//播放下一首歌曲
publicvoidnextMusic(intposition){
//先把MediaPlayer对象切换到stoped状态
if(mediaPlayer!
=null){
if(isPlaying)
{
mediaPlayer.stop();
CURRENT_SONG=position;
//如果播放的是最后一首歌曲,则切换到第一首
if(CURRENT_SONG==(LocalListActivity.list.size())){
CURRENT_SONG=0;
}
playMusic(CURRENT_SONG);
}
}
}
//暂停/恢复播放
publicvoidpauseMusic(){
if(mediaPlayer!
=null){
if(isPlaying==true){
mediaPlayer.pause();
isPlaying=false;
}
}
}
/*
*恢复播放歌曲
*/
publicvoidstartMusic(){
if(mediaPlayer!
=null){
if(isPlaying==false){
mediaPlayer.start();
isPlaying=true;
}
}
创建playmusic类中在textview中进行显示显示正在播放的音乐文件名代码片段:
protectedvoidonResume(){
//TODOAuto-generatedmethodstub
super.onResume();
//TextView对象,设置正在播放的歌曲的名字