Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
package org.example.video;
import android.app.Activity;
import android.os.Bundle;
import android.widget.VideoView;
import android.util.Log;
public class Video extends Activity {
public static final String TAG = "Video";
private VideoView videoObject;
private String videoLocation;
private int videoPosition;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// create view
setContentView(R.layout.main);
// initialize video object
videoObject = (VideoView) findViewById(R.id.video);
// attempt to get data from before device configuration change
Bundle returnData = (Bundle) getLastNonConfigurationInstance();
if (returnData == null) {
// first startup
Log.d(TAG, "Player started for 1st time");
// set video path
videoLocation = "/sdcard/DCIM/Camera/video-2010-01-10-15-21-17.3gp";
videoObject.setVideoPath(videoLocation);
// play video
videoObject.start();
} else {
// restart after device config change
Log.d(TAG, "Player re-started after device configuration change");
// fetch data from bundle
videoLocation = returnData.getString("LOCATION");
videoPosition = returnData.getInt("POSITION");
Log.d(TAG, "Video location: " + videoLocation);
Log.d(TAG, "Video position: " + videoPosition);
// apply properties to new object
videoObject.setVideoPath(videoLocation);
videoObject.seekTo(videoPosition);
// play video
videoObject.start();
}
}
@Override
public Object onRetainNonConfigurationInstance() {
// Device configuration changed
// Save current video playback state
Log.d(TAG, "Saving video playback state");
videoPosition = videoObject.getCurrentPosition();
Log.d(TAG, "Video location: " + videoLocation);
Log.d(TAG, "Video position: " + videoPosition);
// Build bundle to save data for return
Bundle data = new Bundle();
data.putString("LOCATION", videoLocation);
data.putInt("POSITION", videoPosition);
return data;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment