1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.mediaframeworktest; 18 19 import android.app.Activity; 20 import android.content.Context; 21 import android.content.Intent; 22 import android.content.res.AssetFileDescriptor; 23 import android.graphics.Color; 24 import android.media.MediaPlayer; 25 import android.net.Uri; 26 import android.os.Bundle; 27 import android.os.PowerManager; 28 import android.provider.Downloads; 29 import android.util.Log; 30 import android.util.Log; 31 import android.view.KeyEvent; 32 import android.view.Menu; 33 import android.view.SurfaceHolder; 34 import android.view.SurfaceView; 35 import android.view.View.OnClickListener; 36 import android.view.View; 37 import android.view.ViewGroup; 38 import android.widget.Button; 39 import android.widget.EditText; 40 import android.widget.MediaController; 41 import android.widget.VideoView; 42 import com.android.mediaframeworktest.MediaNames; 43 44 import android.graphics.Bitmap; 45 import android.widget.ImageView; 46 47 import java.io.File; 48 import java.io.FileDescriptor; 49 import java.net.InetAddress; 50 51 52 public class MediaFrameworkTest extends Activity implements SurfaceHolder.Callback { 53 54 //public static Surface video_sf; 55 public static SurfaceView mSurfaceView; 56 private MediaController mMediaController; 57 private String urlpath; 58 private MediaPlayer mpmidi; 59 private MediaPlayer mpmp3; 60 private String testfilepath = "/sdcard/awb.awb"; 61 62 public static AssetFileDescriptor midiafd; 63 public static AssetFileDescriptor mp3afd; 64 65 public static Bitmap mDestBitmap; 66 public static ImageView mOverlayView; 67 private SurfaceHolder mSurfaceHolder = null; 68 private String TAG = "MediaFrameworkTest"; 69 private PowerManager.WakeLock mWakeLock = null; 70 MediaFrameworkTest()71 public MediaFrameworkTest() { 72 } 73 74 /** Called when the activity is first created. */ 75 @Override onCreate(Bundle icicle)76 public void onCreate(Bundle icicle) { 77 super.onCreate(icicle); 78 setContentView(R.layout.surface_view); 79 mSurfaceView = (SurfaceView)findViewById(R.id.surface_view); 80 mOverlayView = (ImageView)findViewById(R.id.overlay_layer); 81 ViewGroup.LayoutParams lp = mSurfaceView.getLayoutParams(); 82 mSurfaceHolder = mSurfaceView.getHolder(); 83 mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 84 mSurfaceHolder.addCallback(this); 85 86 //Get the midi fd 87 midiafd = this.getResources().openRawResourceFd(R.raw.testmidi); 88 89 //Get the mp3 fd 90 mp3afd = this.getResources().openRawResourceFd(R.raw.testmp3); 91 mOverlayView.setLayoutParams(lp); 92 mDestBitmap = Bitmap.createBitmap((int)640, (int)480, Bitmap.Config.ARGB_8888); 93 mOverlayView.setImageBitmap(mDestBitmap); 94 95 //Acquire the full wake lock to keep the device up 96 PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE); 97 mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MediaFrameworkTest"); 98 mWakeLock.acquire(); 99 } 100 101 @Override onDestroy()102 public void onDestroy() { 103 super.onDestroy(); 104 mWakeLock.release(); 105 } 106 surfaceDestroyed(SurfaceHolder holder)107 public void surfaceDestroyed(SurfaceHolder holder) { 108 //Can do nothing in here. The test case will fail if the surface destroyed. 109 Log.v(TAG, "Test application surface destroyed"); 110 mSurfaceHolder = null; 111 } 112 surfaceChanged(SurfaceHolder holder, int format, int w, int h)113 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 114 //Do nothing in here. Just print out the log 115 Log.v(TAG, "Test application surface changed"); 116 } 117 surfaceCreated(SurfaceHolder holder)118 public void surfaceCreated(SurfaceHolder holder) { 119 } 120 startPlayback(String filename)121 public void startPlayback(String filename){ 122 String mimetype = "audio/mpeg"; 123 Uri path = Uri.parse(filename); 124 Intent intent = new Intent(Intent.ACTION_VIEW); 125 intent.setDataAndType(path, mimetype); 126 startActivity(intent); 127 } 128 checkStreamingServer()129 public static boolean checkStreamingServer() throws Exception { 130 InetAddress address = InetAddress.getByAddress(MediaNames.STREAM_SERVER); 131 return address.isReachable(10000); 132 } 133 testInvalidateOverlay()134 public static void testInvalidateOverlay() { 135 mOverlayView.invalidate(); 136 } 137 138 } 139