播放界面做的最不完善,需要在接下来的
日子里一步一步完善,播放界面如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="320dip"
android:layout_height="64dip"
android:layout_marginTop="5dip"
>
<ImageView
android:id="@+id/ImageView01"
android:layout_width="64dip"
android:layout_height="64dip"
android:layout_marginLeft="5dip"
android:background="@drawable/yinyue"
>
</ImageView>
<TextView
android:id="@+id/TextView01"
android:text=""
android:layout_width="240dip"
android:layout_height="50dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginTop="15dip"
>
</TextView>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
>
<ImageButton
android:id="@+id/ImageButton01"
android:layout_width="45dip"
android:layout_height="45dip"
android:layout_marginLeft="5dip"
android:background="@drawable/start_button"
>
</ImageButton>
<ImageButton
android:id="@+id/ImageButton02"
android:layout_width="45dip"
android:layout_height="45dip"
android:layout_marginLeft="5dip"
android:background="@drawable/fron_button"
>
</ImageButton>
<ImageButton
android:id="@+id/ImageButton03"
android:layout_width="45dip"
android:layout_height="45dip"
android:layout_marginLeft="5dip"
android:background="@drawable/stop_button"
>
</ImageButton>
<ImageButton
android:id="@+id/ImageButton04"
android:layout_width="45dip"
android:layout_height="45dip"
android:layout_marginLeft="5dip"
android:background="@drawable/next_button"
>
</ImageButton>
<ImageButton
android:id="@+id/ImageButton05"
android:layout_width="90dip"
android:layout_height="45dip"
android:layout_marginLeft="25dip"
android:background="@drawable/list"
>
</ImageButton>
</LinearLayout>
</LinearLayout>
setContentView(R.layout.main);
//初始默认第一首歌
musicName();//歌曲名字的方法;
ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
ImageButton frontButton=(ImageButton)findViewById(R.id.ImageButton02);
ImageButton stopButton=(ImageButton)findViewById(R.id.ImageButton03);
ImageButton nextButton=(ImageButton)findViewById(R.id.ImageButton04);
ImageButton listButton=(ImageButton)findViewById(R.id.ImageButton05);
switch(startPauseButton)
{//0代表暂停状态,1代表播放状态
case 0:
startButton.setBackgroundResource(R.drawable.start_button);
break;
case 1:
startButton.setBackgroundResource(R.drawable.pause_button);
break;
}
startButton.setOnClickListener(//开始按钮的监听
new OnClickListener()
{
public void onClick(View v)
{
ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
if(PlayerMusicService.isPlaying())
{
startPauseButton=0;
PlayerMusicService.pause();
startButton.setBackgroundResource(R.drawable.start_button);
}
else
{
startPauseButton=1;
if(clicknumber==0)
{
new Thread()
{
public void run()
{
playMusic(currentMusic);
}
}.start();
musicName();//歌曲名字的方法;
startButton.setBackgroundResource(R.drawable.pause_button);
}
else if(clicknumber>0)
{
PlayerMusicService.start();
musicName();//歌曲名字的方法
startButton.setBackgroundResource(R.drawable.pause_button);
}
}
clicknumber++;// 点击次数增加
}
}
);
frontButton.setOnClickListener(//上一首歌按钮监听器
new OnClickListener()
{
@Override
public void onClick(View v) {
clicknumber++;// 点击次数增加
ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
frontMusic();
musicName();//歌曲名字的方法
startButton.setBackgroundResource(R.drawable.pause_button);
}
});
stopButton.setOnClickListener(//停止按钮监听器
new OnClickListener(){
@Override
public void onClick(View v) {
clicknumber=0;//点击次数设为0
PlayerMusicService.stop();
ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
startButton.setBackgroundResource(R.drawable.start_button);
TextView nameTV=(TextView)findViewById(R.id.TextView01);
nameTV.setText("");
}
});
nextButton.setOnClickListener(//下一首歌按钮监听器
new OnClickListener(){
@Override
public void onClick(View v) {
clicknumber++;// 点击次数增加
ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
nextMusic();
musicName();//歌曲名字的方法
startButton.setBackgroundResource(R.drawable.pause_button);
}
});
listButton.setOnClickListener(//播放列表按钮监听器
new OnClickListener(){
@Override
public void onClick(View v) {
clicknumber++;// 点击次数增加
hd.sendEmptyMessage(GOMUSCILIST);
}
});
要播放音乐,就要先获得歌曲信息,在onResume()方法中:
cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
在播放界面中用到几个方法,如下:
//播放相应索引歌曲的方法
public void playMusic(int index)
{
cursor.moveToPosition(index);
String path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
PlayerMusicService.playMusic(path);
}
public void musicName()//设置歌曲名字的方法
{
TextView nameTV=(TextView)findViewById(R.id.TextView01);
nameTV.setTextColor(Color.BLUE);
nameTV.setTextSize(20);
if(tableContent.length>0)
{
musicName=tableContent[currentMusic][1].trim();
if(musicName.length()>11)
{
musicName=musicName.substring(0, 11)+"...";
}
nameTV.setText(musicName);
}
}
public void nextMusic()//播放下一首歌曲
{
if(++currentMusic>tableContent.length-1)
{
currentMusic=0;
new Thread()
{
public void run()
{
playMusic(currentMusic);
}
}.start();
}else
{
new Thread()
{
public void run()
{
playMusic(currentMusic);
}
}.start();
}
}
public void frontMusic()//播放上一首播个歌的方法
{
if(--currentMusic<0)
{
currentMusic=tableContent.length-1;
new Thread()
{
public void run()
{
playMusic(currentMusic);
}
}.start();
}else
{
new Thread()
{
public void run()
{
playMusic(currentMusic);
}
}.start();
}
}