Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void playSong(int songIndex) {
- // Play song
- try {
- mp.reset();
- mp.setDataSource(songsListingSD.get(songIndex).get("songPath"));
- mp.prepare();
- mp.start();
- // Displaying Song title
- String songTitle = songsListingSD.get(songIndex).get("songTitle");
- songTitleLabel.get().setText(songTitle);
- // Changing Button Image to pause image
- btnPlay.get().setImageResource(R.drawable.ic_media_pause);
- // set Progress bar values
- songProgressBar.get().setProgress(0);
- songProgressBar.get().setMax(100);
- // Updating progress bar
- updateProgressBar();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- I have implemented this musi cservcie class which is working fine
- public class MusicSrvice extends Service implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener, MediaPlayer.OnInfoListener{
- public static final String ACTION_STOP="com.example.music4u.ACTION_STOP";
- public static final String ACTION_PLAY="com.example.music4u.ACTION_PLAY";
- public static final String ACTION_PAUSE="com.example.music4u.ACTION_PAUSE";
- private final IBinder mBinder = new ServiceBinder();
- MediaPlayer mPlayer;
- String path="";
- private int length = 0;
- private boolean isPlaying = false;
- private static final int NOTIFICATION_ID = 1;
- public MusicSrvice() { }
- public class ServiceBinder extends Binder {
- MusicSrvice getService()
- {
- return MusicSrvice.this;
- }
- }
- @Override
- public IBinder onBind(Intent arg0){return mBinder;}
- @Override
- public void onCreate (){
- super.onCreate();
- AudioManager amanager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
- int maxVolume = amanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
- amanager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);
- mPlayer=new MediaPlayer();
- mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- // mPlayer = MediaPlayer.create(this, R.raw.jingle);
- mPlayer.setOnErrorListener(this);
- if(mPlayer!= null)
- {
- mPlayer.setLooping(true);
- //mPlayer.setVolume(100,100);
- }
- /* mPlayer.setOnErrorListener(new OnErrorListener() {
- public boolean onError(MediaPlayer mp, int what, int
- extra){
- onError(mPlayer, what, extra);
- return true;
- }
- });*/
- }
- @Override
- public int onStartCommand (Intent intent, int flags, int startId)
- {
- if(intent.getExtras()!=null){
- path =intent.getExtras().getString("path");
- }
- Context c = getApplicationContext();
- if (intent != null) {
- String action = intent.getAction();
- if(action!=null){
- // if (!TextUtils.isEmpty(action)) {
- if (action.equals(ACTION_STOP)) {
- pauseMusic(path);
- }}
- }
- //}
- /// path = intent.getStringExtra(EXTRA_FILENAME);
- if (path == null) {
- Log.w("logtag", "PlayService::onStart recording == null, returning");
- //return;
- }
- Log.i("", "PlayService will play " + path);
- try {
- if(mPlayer!=null){
- mPlayer.reset();
- mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- mPlayer.setDataSource(path);
- mPlayer.setLooping(false);
- mPlayer.prepare();
- Log.d("logtag", "PlayService player.prepare() returned");
- mPlayer.start();
- CustomNotification();
- isPlaying = true;
- Log.i("logtag", "player.start() returned");}
- else
- {
- Log.i("logtag", "mediaplayer null");
- }
- //updateNotification(true);
- } catch (java.io.IOException e) {
- Log.e("", "PlayService::onStart() IOException attempting player.prepare()n");
- Toast t = Toast.makeText(getApplicationContext(), "PlayService was unable to start playing recording: " + e, Toast.LENGTH_LONG);
- t.show();
- // return;
- } catch (java.lang.Exception e) {
- Toast t = Toast.makeText(getApplicationContext(), "MusicPlayer was unable to start playing recording: " + e, Toast.LENGTH_LONG);
- t.show();
- Log.e("", "PlayService::onStart caught unexpected exception", e);
- }
- return START_STICKY;
- }
- public void pauseMusic(String path)
- {
- if(mPlayer.isPlaying())
- {
- mPlayer.pause();
- length=mPlayer.getCurrentPosition();
- }
- else{
- mPlayer.reset();
- mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- try {
- mPlayer.setDataSource(path);
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- mPlayer.setLooping(false);
- try {
- mPlayer.prepare();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- Log.d("logtag", "PlayService player.prepare() returned");
- mPlayer.start(); }
- }
- public void playNextSong(String path)
- {
- mPlayer.stop();
- mPlayer.reset();
- mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- try {
- mPlayer.setDataSource(path);
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- mPlayer.setLooping(false);
- try {
- mPlayer.prepare();
- } catch (IllegalStateException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- Log.d("logtag", "PlayService player.prepare() returned");
- mPlayer.start();
- }
- public boolean isplaying(){
- if(mPlayer!= null)
- {
- return mPlayer.isPlaying();}
- return false;
- }
- public void seekto(int duration){
- if(mPlayer!= null)
- {
- mPlayer.seekTo(duration);}
- }
- public int getCurrentPosition(){
- if(mPlayer!= null)
- {
- return mPlayer.getCurrentPosition();}
- return 0;
- }
- public int getDuration(){
- if(mPlayer!= null)
- {
- return mPlayer.getDuration();}
- return 0;
- }
- public void resumeMusic()
- {
- if(mPlayer.isPlaying()==false)
- {
- mPlayer.seekTo(length);
- mPlayer.start();
- }
- }
- public void stopMusic()
- {
- mPlayer.stop();
- mPlayer.release();
- mPlayer = null;
- }
- @Override
- public void onDestroy ()
- {
- super.onDestroy();
- if(mPlayer != null)
- {
- try{
- mPlayer.stop();
- mPlayer.release();
- }finally {
- mPlayer = null;
- }
- }
- }
- @Override
- public void onLowMemory() {
- // TODO Auto-generated method stub
- super.onLowMemory();
- NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
- String message = "Sorry your system has low memory";
- Notification notification = new Notification(android.R.drawable.ic_dialog_alert, message, System.currentTimeMillis());
- notificationManager.notify(1, notification);
- stopSelf();
- }
- public boolean onError(MediaPlayer mp, int what, int extra) {
- Toast.makeText(this, "music player failed", Toast.LENGTH_SHORT).show();
- if(mPlayer != null)
- {
- try{
- mPlayer.stop();
- mPlayer.release();
- }finally {
- mPlayer = null;
- }
- }
- return false;
- }
- @Override
- public boolean onInfo(MediaPlayer arg0, int arg1, int arg2) {
- // TODO Auto-generated method stub
- return false;
- }
- @Override
- public void onCompletion(MediaPlayer arg0) {
- // TODO Auto-generated method stub
- }
- public void release(){
- mPlayer.release();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement