package com.grjorgesys.androidstreaming;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
public class Main extends Activity {
private URL url;
private VideoView myvideoview;
private Button btnM3U8, btnURL, btnRTSP;
private String urlStream;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myvideoview = (VideoView)this.findViewById(R.id.myvideoview);
MediaController mc = new MediaController(this);
myvideoview.setMediaController(mc);
btnRTSP = (Button)this.findViewById(R.id.btnRTSP);
btnRTSP.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
urlStream = 'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov';
myvideoview.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i('RTSP ***', 'onCompletion');
}
});
myvideoview.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.i('RTSP *** ', 'onPrepared');
if(myvideoview.canSeekForward()) myvideoview.seekTo(myvideoview.getDuration()/5);
myvideoview.start();
}
});
myvideoview.setKeepScreenOn(true);
new playRTSP().execute(urlStream);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/*Using an Asynctask to avoid NetworkOnMainThreadException*/
class playRTSP extends AsyncTask {
private Exception exception;
protected Void doInBackground(String... urls) {
final String myurl = urls[0];
runOnUiThread(new Runnable() {
@Override
public void run() {
myvideoview.setVideoURI(Uri.parse(myurl.toString()));
}
});
return null;
}
protected void onPostExecute(String feed) {
Log.i('RTSP ***', 'onPostExecute url: ' + url);
}
}
}
urlRTSP = 'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov'
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlRTSP));
startActivity(intent);