Created
November 2, 2011 01:18
-
-
Save joet3ch/1332569 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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