1ea0bad0574451212591841ba84f477ecc216003aHuahui Wu/* 2ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Copyright (C) 2011 The Android Open Source Project 3ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * 4ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Licensed under the Apache License, Version 2.0 (the "License"); 5ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * you may not use this file except in compliance with the License. 6ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * You may obtain a copy of the License at 7ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * 8ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * http://www.apache.org/licenses/LICENSE-2.0 9ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * 10ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * Unless required by applicable law or agreed to in writing, software 11ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * distributed under the License is distributed on an "AS IS" BASIS, 12ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * See the License for the specific language governing permissions and 14ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * limitations under the License. 15ea0bad0574451212591841ba84f477ecc216003aHuahui Wu */ 16ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 17ea0bad0574451212591841ba84f477ecc216003aHuahui Wupackage com.android.mediadump; 18ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 19ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.app.Activity; 20ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.app.AlertDialog; 21ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.Context; 22705555dc468e46560d02db102dfcedc1e5c70d9eYohann Rousselimport android.content.DialogInterface; 23ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.Intent; 24ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.content.SharedPreferences; 25ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.os.Bundle; 26ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.util.Log; 27ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.view.Gravity; 28ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.view.View; 29ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.EditText; 30ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.FrameLayout; 31ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.LinearLayout; 32ea0bad0574451212591841ba84f477ecc216003aHuahui Wuimport android.widget.MediaController; 33ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 34ea0bad0574451212591841ba84f477ecc216003aHuahui Wu/** 35ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * A media tool to play a video and dump the screen display 36ea0bad0574451212591841ba84f477ecc216003aHuahui Wu * into raw RGB files. Check VideoDumpView for tech details. 37ea0bad0574451212591841ba84f477ecc216003aHuahui Wu */ 38ea0bad0574451212591841ba84f477ecc216003aHuahui Wupublic class VideoDumpActivity extends Activity { 39ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 40ea0bad0574451212591841ba84f477ecc216003aHuahui Wu private Context context; 41ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 42ea0bad0574451212591841ba84f477ecc216003aHuahui Wu private View mainView; 43ea0bad0574451212591841ba84f477ecc216003aHuahui Wu private VideoDumpView mVideoView; 44ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 45ea0bad0574451212591841ba84f477ecc216003aHuahui Wu @Override 46ea0bad0574451212591841ba84f477ecc216003aHuahui Wu protected void onCreate(Bundle savedInstanceState) { 47ea0bad0574451212591841ba84f477ecc216003aHuahui Wu super.onCreate(savedInstanceState); 48ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 49ea0bad0574451212591841ba84f477ecc216003aHuahui Wu context = this; 50ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 51ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mainView = createView(); 52ea0bad0574451212591841ba84f477ecc216003aHuahui Wu setContentView(mainView); 53ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 54ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 55ea0bad0574451212591841ba84f477ecc216003aHuahui Wu @Override 56ea0bad0574451212591841ba84f477ecc216003aHuahui Wu protected void onPause() { 57ea0bad0574451212591841ba84f477ecc216003aHuahui Wu super.onPause(); 58ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mVideoView.onPause(); 59ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 60ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 61ea0bad0574451212591841ba84f477ecc216003aHuahui Wu @Override 62ea0bad0574451212591841ba84f477ecc216003aHuahui Wu protected void onResume() { 63ea0bad0574451212591841ba84f477ecc216003aHuahui Wu super.onResume(); 64ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mVideoView.onResume(); 65ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 66ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 67ea0bad0574451212591841ba84f477ecc216003aHuahui Wu private View createView() { 68ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mVideoView = new VideoDumpView(this); 69ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mVideoView.setMediaController(new MediaController(context)); 70ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 71ea0bad0574451212591841ba84f477ecc216003aHuahui Wu LinearLayout mainLayout = new LinearLayout(this); 72ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mainLayout.addView(mVideoView, new LinearLayout.LayoutParams( 73ea0bad0574451212591841ba84f477ecc216003aHuahui Wu LinearLayout.LayoutParams.MATCH_PARENT, 74ea0bad0574451212591841ba84f477ecc216003aHuahui Wu LinearLayout.LayoutParams.MATCH_PARENT)); 75ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 76ea0bad0574451212591841ba84f477ecc216003aHuahui Wu return mainLayout; 77ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 78ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 79ea0bad0574451212591841ba84f477ecc216003aHuahui Wu protected void onStop() { 80ea0bad0574451212591841ba84f477ecc216003aHuahui Wu if (mVideoView != null) { 81ea0bad0574451212591841ba84f477ecc216003aHuahui Wu if (mVideoView.isPlaying()) { 82ea0bad0574451212591841ba84f477ecc216003aHuahui Wu mVideoView.stopPlayback(); 83ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 84ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 85ea0bad0574451212591841ba84f477ecc216003aHuahui Wu super.onStop(); 86ea0bad0574451212591841ba84f477ecc216003aHuahui Wu } 87ea0bad0574451212591841ba84f477ecc216003aHuahui Wu} 88ea0bad0574451212591841ba84f477ecc216003aHuahui Wu 89