网友通过本文主要向大家介绍了androidmediaplayer,mediaplayerclassic,mobilemediaplayer,mediaplayer.create,widowsmediaplayer等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Android MediaPlayer 音乐播放
主要使用
android.media.MediaPlayer;
android.widget.SeekBar;
<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Layout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
<listview android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:drawselectorontop="false">
<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_name">
<seekbar android:paddingleft="10dip" android:paddingright="10dip" android:layout_gravity="bottom" android:id="@+id/seekBar1" android:layout_width="fill_parent" android:layout_height="wrap_content">
<linearlayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"><button android:id="@+id/last" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/last"></button><button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/stop"></button><button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/start"></button><button android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="190px" android:layout_y="70px" android:background="@drawable/pause" android:visibility="gone"></button><button android:id="@+id/next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/next"></button>
</linearlayout>
</seekbar></textview></listview></linearlayout>
package com.tt;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;
public class viewHolder {
public static Button start;
public static Button stop;
public static Button pause;
public static Button next;
public static Button last;
public static TextView tv_name;
public static SeekBar seekBar;
}
package com.tt;
import java.io.File;
import java.io.FilenameFilter;
public class MusicFilter implements FilenameFilter{
@Override
public boolean accept(File dir, String filename) {
// TODO Auto-generated method stub
return (filename.endsWith(".mp3"));
}
}
package com.tt;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
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.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class musicActivity extends ListActivity {
// 播放对象
private MediaPlayer myMediaPlayer;
// 播放列表
private List myMusicList = new ArrayList();
// 当前播放歌曲的索引
private int currentListItem = 0;
// 音乐的路径
private static final String MUSIC_PATH = new String("/sdcard/");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myMediaPlayer = new MediaPlayer();
findView();
musicList();
listener();
}
// 绑定音乐
void musicList() {
File home = new File(MUSIC_PATH);
if (home.listFiles(new MusicFilter()).length > 0) {
for (File file : home.listFiles(new MusicFilter())) {
myMusicList.add(file.getName());
}
ArrayAdapter musicList = new ArrayAdapter(
musicActivity.this, R.layout.musicitme, myMusicList);
setListAdapter(musicList);
}
}
// 获取按钮
void findView() {
viewHolder.start = (Button) findViewById(R.id.start);
viewHolder.stop = (Button) findViewById(R.id.stop);
viewHolder.next = (Button) findViewById(R.id.next);
viewHolder.pause = (Button) findViewById(R.id.pause);
viewHolder.last = (Button) findViewById(R.id.last);
viewHolder.tv_name = (TextView) findViewById(R.id.tv_name);
viewHolder.seekBar = (SeekBar) findViewById(R.id.seekBar1);
}
boolean ispause = false;
Handler handler = new Handler() {
};
Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (myMediaPlayer.isPlaying()) {
viewHolder.seekBar.setProgress(myMediaPlayer
.getCurrentPosition());
}
handler.postDelayed(runnable, 500);
}
};
// 监听事件
void listener() {
// 停止
viewHolder.stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
if (myMediaPlayer.isPlaying()) {
myMediaPlayer.stop();
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
viewHolder.start.setBackgroundDrawable(getResources()
.getDrawable(R.drawable.start));
handler.removeCallbacks(runnable);
}
});
// 开始
viewHolder.start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
if (null != myMediaPlayer && myMediaPlayer.isPlaying()) {
ispause = true;
myMediaPlayer.pause();
v.setBackgroundDrawable(getResources().getDrawable(
R.drawable.start));
} else {
if (!ispause) {
playMusic(MUSIC_PATH
+ myMusicList.get(currentListItem));
} else {
myMediaPlayer.start();
}
ispause = false;
v.setBackgroundDrawable(getResources().getDrawable(
R.drawable.pause));
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
// 下一首
viewHolder.next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
nextMusic();
}
});
// 暂停
viewHolder.pause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (myMediaPlayer.isPlaying()) {
myMediaPlayer.pause();
} else {
myMediaPlayer.start();
}
}
});
// 上一首
viewHolder.last.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
lastMusic();
}
});
}
// 下一首
void nextMusic() {
if (++currentListItem >= myMusicList.size()) {
currentListItem = 0;
} else {
playMusic(MUSIC_PATH + myMusicList.get(currentListItem));
}
}
// 上一首
void lastMusic() {
if (currentListItem != 0) {
if (--currentListItem < 0) {
currentListItem = myMusi

