Play mp3 file loaded from a URL
Description
The following code shows how to Play mp3 file loaded from a URL.
Example
Main layout xml file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Now Playing..."
/>
<ImageView
android:id="@+id/coverImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="centerInside"
/>
</LinearLayout>
Java code
package com.java2s.myapplication3.app;
//from ww w . java2 s .c om
import android.app.Activity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.MediaController;
public class MainActivity extends Activity implements MediaController.MediaPlayerControl, MediaPlayer.OnBufferingUpdateListener {
MediaController mController;
MediaPlayer mPlayer;
ImageView coverImage;
int bufferPercent = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coverImage = (ImageView)findViewById(R.id.coverImage);
mController = new MediaController(this);
mController.setAnchorView(findViewById(R.id.root));
}
@Override
public void onResume() {
super.onResume();
mPlayer = new MediaPlayer();
try {
mPlayer.setDataSource(this, Uri.parse("http://www.your server host.com/your file.mp3"));
mPlayer.prepare();
} catch (Exception e) {
e.printStackTrace();
}
coverImage.setImageResource(R.drawable.ic_launcher);
mController.setMediaPlayer(this);
mController.setEnabled(true);
}
@Override
public void onPause() {
super.onPause();
mPlayer.release();
mPlayer = null;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mController.show();
return super.onTouchEvent(event);
}
//MediaPlayerControl Methods
@Override
public int getBufferPercentage() {
return bufferPercent;
}
@Override
public int getCurrentPosition() {
return mPlayer.getCurrentPosition();
}
@Override
public int getDuration() {
return mPlayer.getDuration();
}
@Override
public boolean isPlaying() {
return mPlayer.isPlaying();
}
@Override
public void pause() {
mPlayer.pause();
}
@Override
public void seekTo(int pos) {
mPlayer.seekTo(pos);
}
@Override
public void start() {
mPlayer.start();
}
//BufferUpdateListener Methods
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
bufferPercent = percent;
}
//Android 2.0+ Target Callbacks
public boolean canPause() {
return true;
}
public boolean canSeekBackward() {
return true;
}
public boolean canSeekForward() {
return true;
}
@Override
public int getAudioSessionId() {
return 0;
}
}