网友通过本文主要向大家介绍了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 ListmyMusicList = 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