Load and Play Video in android using video url.
Load & Play Videos in Android
"video_viewer.xml" file:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" > <VideoView android:id="@+id/video_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center"/> </FrameLayout>
"MyPlaylistVideoActivity.java" file:
package com.digipicsworks.friendlien.activity;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.digipicsworks.friendlien.FriendliensApp;
import com.digipicsworks.friendlien.SqliteDatabase.DatabaseHandler;
import com.digipicsworks.friendlien.SqliteDatabase.VideoInfo;
import com.digipicsworks.friendlien.fragment.MyPlaylistFragment;
import com.digipicsworks.friendlien.fragment.VideoVimeoFragment;
import java.util.ArrayList;
import java.util.List;
import static com.semwal.activity.MainActivity.ACTIVITY_ID;
import static com.semwal.activity.MainActivity.EXTRA_VIDEO;
public class MyPlaylistVideoActivity extends Activity {
private VideoView myVideoView;
private int position = 0;
private ProgressDialog progressDialog;
private MediaController mediaControls;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// set the main layout of the activity
setContentView(R.layout.video_viewer);
//set the media controller buttons
if (mediaControls == null) {
mediaControls = new MediaController(MyPlaylistVideoActivity.this);
//Play Previous and Next Video
mediaControls.setPrevNextListeners(new View.OnClickListener() {
@Override
public void onClick(View v) {
//next button clicked
}
}, new View.OnClickListener() {
@Override
public void onClick(View v) {
//previous button clicked
}
});
}
//initialize the VideoView
myVideoView = (VideoView) findViewById(R.id.video_view);
// create a progress bar while the video_viewer file is loading
progressDialog = new ProgressDialog(MyPlaylistVideoActivity.this);
// set a title for the progress bar
progressDialog.setTitle("Loading video_viewer...");
// set a message for the progress bar
progressDialog.setMessage("Loading...");
//set the progress bar not cancelable on users' touch
progressDialog.setCancelable(false);
// show the progress bar
progressDialog.show();
try {
//set the media controller in the VideoView
myVideoView.setMediaController(mediaControls);
Intent intent = getIntent();
Bundle bundle= intent.getExtras();
Log.d("VideoURl",bundle.getString(EXTRA_VIDEO));
//set the uri of the video_viewer to be played
myVideoView.setVideoURI(Uri.parse(bundle.getString("VideoUrl")));
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
myVideoView.requestFocus();
//we also set an setOnPreparedListener in order to know when the video_viewer file is ready for playback
myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mediaPlayer) {
// close the progress bar and play the video_viewer
progressDialog.dismiss();
//if we have a position on savedInstanceState, the video_viewer playback should start from here
myVideoView.seekTo(position);
if (position == 0) {
myVideoView.start();
} else {
//if we come from a resumed activity, video_viewer playback will be paused
myVideoView.pause();
}
}
});
//This is called when video is complete you can do what ever you want to do after video completion
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Toast.makeText(MyPlaylistVideoActivity.this, "Video Complete", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
//we use onSaveInstanceState in order to store the video_viewer playback position for orientation change
savedInstanceState.putInt("Position", myVideoView.getCurrentPosition());
myVideoView.pause();
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//we use onRestoreInstanceState in order to play the video_viewer playback from the stored position
position = savedInstanceState.getInt("Position");
myVideoView.seekTo(position);
}
}
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import com.digipicsworks.friendlien.FriendliensApp;
import com.digipicsworks.friendlien.SqliteDatabase.DatabaseHandler;
import com.digipicsworks.friendlien.SqliteDatabase.VideoInfo;
import com.digipicsworks.friendlien.fragment.MyPlaylistFragment;
import com.digipicsworks.friendlien.fragment.VideoVimeoFragment;
import java.util.ArrayList;
import java.util.List;
import static com.semwal.activity.MainActivity.ACTIVITY_ID;
import static com.semwal.activity.MainActivity.EXTRA_VIDEO;
public class MyPlaylistVideoActivity extends Activity {
private VideoView myVideoView;
private int position = 0;
private ProgressDialog progressDialog;
private MediaController mediaControls;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// set the main layout of the activity
setContentView(R.layout.video_viewer);
//set the media controller buttons
if (mediaControls == null) {
mediaControls = new MediaController(MyPlaylistVideoActivity.this);
//Play Previous and Next Video
mediaControls.setPrevNextListeners(new View.OnClickListener() {
@Override
public void onClick(View v) {
//next button clicked
}
}, new View.OnClickListener() {
@Override
public void onClick(View v) {
//previous button clicked
}
});
}
//initialize the VideoView
myVideoView = (VideoView) findViewById(R.id.video_view);
// create a progress bar while the video_viewer file is loading
progressDialog = new ProgressDialog(MyPlaylistVideoActivity.this);
// set a title for the progress bar
progressDialog.setTitle("Loading video_viewer...");
// set a message for the progress bar
progressDialog.setMessage("Loading...");
//set the progress bar not cancelable on users' touch
progressDialog.setCancelable(false);
// show the progress bar
progressDialog.show();
try {
//set the media controller in the VideoView
myVideoView.setMediaController(mediaControls);
Intent intent = getIntent();
Bundle bundle= intent.getExtras();
Log.d("VideoURl",bundle.getString(EXTRA_VIDEO));
//set the uri of the video_viewer to be played
myVideoView.setVideoURI(Uri.parse(bundle.getString("VideoUrl")));
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
myVideoView.requestFocus();
//we also set an setOnPreparedListener in order to know when the video_viewer file is ready for playback
myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mediaPlayer) {
// close the progress bar and play the video_viewer
progressDialog.dismiss();
//if we have a position on savedInstanceState, the video_viewer playback should start from here
myVideoView.seekTo(position);
if (position == 0) {
myVideoView.start();
} else {
//if we come from a resumed activity, video_viewer playback will be paused
myVideoView.pause();
}
}
});
//This is called when video is complete you can do what ever you want to do after video completion
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Toast.makeText(MyPlaylistVideoActivity.this, "Video Complete", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
//we use onSaveInstanceState in order to store the video_viewer playback position for orientation change
savedInstanceState.putInt("Position", myVideoView.getCurrentPosition());
myVideoView.pause();
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//we use onRestoreInstanceState in order to play the video_viewer playback from the stored position
position = savedInstanceState.getInt("Position");
myVideoView.seekTo(position);
}
}
"MainActivity.java" file:
From MainActivity.java simply pass url in bundle
Intent intent = new Intent(getContext(),MyPlaylistVideoActivity.class);
intent.putExtra(EXTRA_VIDEO, videoUrl);
startActivity(intent);
intent.putExtra(EXTRA_VIDEO, videoUrl);
startActivity(intent);
Enjoy!
Comments
Post a Comment