Mega Code Archive

 
Categories / Android / Media
 

Using Service to play media file

package app.test; import android.app.Activity; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.os.Bundle; import android.os.IBinder; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; class BackgroundAudioService extends Service implements OnCompletionListener {   MediaPlayer mediaPlayer;   @Override   public IBinder onBind(Intent intent) {     return null;   }   @Override   public void onCreate() {     mediaPlayer = MediaPlayer.create(this, R.raw.s);// raw/s.mp3     mediaPlayer.setOnCompletionListener(this);   }   @Override   public int onStartCommand(Intent intent, int flags, int startId) {     if (!mediaPlayer.isPlaying()) {       mediaPlayer.start();     }     return START_STICKY;   }   public void onDestroy() {     if (mediaPlayer.isPlaying()) {       mediaPlayer.stop();     }     mediaPlayer.release();   }   public void onCompletion(MediaPlayer _mediaPlayer) {     stopSelf();   } } public class Test extends Activity implements OnClickListener {   Button startPlaybackButton, stopPlaybackButton;   Intent playbackServiceIntent;   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     startPlaybackButton = (Button) this.findViewById(R.id.StartPlaybackButton);     stopPlaybackButton = (Button) this.findViewById(R.id.StopPlaybackButton);     startPlaybackButton.setOnClickListener(this);     stopPlaybackButton.setOnClickListener(this);     playbackServiceIntent = new Intent(this, BackgroundAudioService.class);   }   public void onClick(View v) {     if (v == startPlaybackButton) {       startService(playbackServiceIntent);       finish();     } else if (v == stopPlaybackButton) {       stopService(playbackServiceIntent);       finish();     }   } } //main.xml <?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"     >     <TextView           android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="Background Audio Player"         />    <Button android:text="Start Playback" android:id="@+id/StartPlaybackButton" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>    <Button android:text="Stop Playback" android:id="@+id/StopPlaybackButton" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>