Android下MP3播放器的实现源代码

Android下MP3播放器的实现源代码

2021-11-04 00:13:59 浏览次数:

MusicInfoController.javapackage com.yarin.android.MusicPlayer;import android.content.ContentResolver;import android.database.Cursor;import .Uri;import android.provider.MediaStore;public class MusicInfoControllerprivate static MusicInfoController mInstance null;private MusicPlayerApp pApp null;public static MusicInfoController getInstanceMusicPlayerApp appif mInstance nullmInstance new MusicInfoControllerapp;return mInstance;private MusicInfoControllerMusicPlayerApp apppApp app;public MusicPlayerApp getMusicPlayerreturn pApp;private Cursor queryUri uri,String prjs,String selections,String selectArgs,String order ContentResolver resolver pApp.getContentResolver;if resolver nullreturn null;return resolver.queryuri,prjs,selections,selectArgs,order;public Cursor getAllSongsreturn queryMediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER;MusicList.javapackage com.yarin.android.MusicPlayer;import android.app.ListActivity;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.content.ServiceConnection;import android.database.Cursor;import android.os.Bundle;import android.os.IBinder;import android.provider.MediaStore;import android.view.View;import android.widget.Button;import android.widget.ListAdapter;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.T extView;public class MusicList extends ListActivityprivate MusicPlayerService mMusicPlayerService null;private MusicInfoController mMusicInfoController null;private Cursor mCursor null;private TextView mTextView null;private Button mPlayPauseButton null;private Button mStopButton null;private ServiceConnection mPlaybackConnection new ServiceConnection public void onServiceConnectedComponentName className,IBinder service mMusicPlayerService MusicPlayerService.LocalBinderservice.getService;public void onServiceDisconnectedComponentName className mMusicPlayerService null;;protected BroadcastReceiver mPlayerEvtReceiver new BroadcastReceiver Overridepublic void onReceiveContext context,Intent intent String action intent.getAction;if action.equalsMusicPlayerService.PLAYER_PREPARE_END // will begin to playmTextView.setVisibilityView.INVISIBLE; mPlayPauseButton.setVisibilityView.VISIBLE; mStopButton.setVisibilityView.VISIBLE;mPlayPauseButton.setTextR.string.pause; else ifaction.equalsMusicPlayerService.PLAY_COMPLETED mPlayPauseButton.setTextR.string.play;;public void onCreateBundle savedInstanceState super.onCreatesavedInstanceState;setContentViewR.layout.list_layout;MusicPlayerApp musicPlayerAppMusicPlayerAppgetApplication; mMusicInfoController musicPlayerApp.getMusicInfoController;// bind playback servicestartServicenew Intentthis,MusicPlayerService.class;bindServicenew Intentthis,MusicPlayerService.class,mPlaybackConnection,Context.BIND_AUTO_CREATE;mTextView TextViewfindViewByIdR.id.show_text; mPlayPauseButton Button findViewByIdR.id.play_pause_btn; mStopButton Button findViewByIdR.id.stop_btn;mPlayPauseButton.setOnClickListenernew Button.OnClickListener public void onClickView v // Per action on clickif mMusicPlayerService null mPlayPauseButton.setTextR.string.play; else if mMusicPlayerService nullmMusicPlayerService.start;mPlayPauseButton.setTextR.string.pause;;mStopButton.setOnClickListenernew Button.OnClickListener public void onClickView v // Per action on clickif mMusicPlayerService null mTextView.setVisibilityView.VISIBLE; mPlayPauseButton.setVisibilityView.INVISIBLE; mStopButton.setVisibilityView.INVISIBLE; mMusicPlayerService.stop;;IntentFilter filter new IntentFilter;filter.addActionMusicPlayerService.PLAYER_PREPARE_END;filter.addActionMusicPlayerService.PLAY_COMPLETED;registerReceivermPlayerEvtReceiver,filter;protected void onResume super.onResume;mCursor mMusicInfoController.getAllSongs;ListAdapter adapter new MusicListAdapterthis,android.R.layout.simple_expandable_list_item_2,mCursor,new String,new int;setListAdapteradapter;protected void onListItemClickListView l,View v,int position,long id super.onListItemClickl,v,position,id;if mCursor null ||mCursor.getCount 0 return;mCursor.moveToPositionposition;String url mCursor.getStringmCursor.getColumnIndexOrThrowMediaStore.Audio.Media.DATA;mMusicPlayerService.setDataSourceurl;mMusicPlayerService.start;/********************************************************************/class MusicListAdapter extends SimpleCursorAdapter public MusicListAdapterContext context,int layout,Cursor c,String from,int to supercontext,layout,c,from,to;public void bindViewView view,Context context,Cursor cursor super.bindViewview,context,cursor;TextView titleView TextView view.findViewByIdandroid.R.id.text1;TextView artistView TextView view.findViewByIdandroid.R.id.text2;titleView.setTextcursor.getStringcursor.getColumnIndexOrThrowMediaStore.Audio.Media.TITLE;artistView.setTextcursor.getStringcursor.getColumnIndexOrThrowMediaStore.Audio.Medi a.ARTIST;//int duration cursor.getIntcursor.getColumnIndexOrThrowMediaStore.Audio.Media.DURATION;public static String makeTimeStringlong milliSecs StringBuffer sb new StringBuffer;long m milliSecs / 60 * 1000;sb.appendm 10 0 m m;sb.append;long s milliSecs 60 * 1000 / 1000;sb.appends 10 0 s s;return sb.toString;MusicPlayerApp.java package com.yarin.android.MusicPlayer;import android.app.Application;public class MusicPlayerApp extends Applicationprivate MusicInfoController mMusicInfoController null;public void onCreate super.onCreate;mMusicInfoController MusicInfoController.getInstancethis; public MusicInfoController getMusicInfoControllerreturn mMusicInfoController;MusicPlayerService.javapackage com.yarin.android.MusicPlayer;import java.io.IOException;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.Binder;import android.os.IBinder;public class MusicPlayerService extends Serviceprivate final IBinder mBinder new LocalBinder;private MediaPlayer mMediaPlayer null;public static final String PLAYER_PREPARE_END com.yarin.musicplayerservice.prepared;public static final String PLAY_COMPLETED com.yarin.musicplayerservice.playcompleted;MediaPlayer.OnCompletionListener mCompleteListener new MediaPlayer.OnCompletionListenerpublic void onCompletionMediaPlayer mp broadcastEventPLAY_COMPLETED;;MediaPlayer.OnPreparedListener mPrepareListener new MediaPlayer.OnPreparedListenerpublic void onPreparedMediaPlayer mp broadcastEventPLAYER_PREPARE_END;;private void broadcastEventString whatIntent i new Intentwhat; sendBroadcasti;public void onCreatesuper.onCreate;mMediaPlayer new MediaPlayer; mMediaPlayer.setOnPreparedListenermPrepareListener; mMediaPlayer.setOnCompletionListenermCompleteListener;public class LocalBinder extends Binderpublic MusicPlayerService getServicereturn MusicPlayerService.this;public IBinder onBindIntent intentreturn mBinder;public void setDataSourceString pathtrymMediaPlayer.reset;mMediaPlayer.setDataSourcepath; mMediaPlayer.prepare;catch IOException ereturn;catch IllegalArgumentException ereturn;public void startmMediaPlayer.start;public void stopmMediaPlayer.stop;public void pausemMediaPlayer.pause;public boolean isPlayingreturn mMediaPlayer.isPlaying;public int getDurationreturn mMediaPlayer.getDuration;public int getPositionreturn mMediaPlayer.getCurrentPosition;public long seeklong wheretomMediaPlayer.seekToint whereto;return whereto;

最新文章
热门文章
相关推荐