package com.youplayer.player.fullplayer; import android.content.Context; import android.util.AttributeSet; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; import com.youplayer.player.R; import com.youplayer.util.LOG; public class YouPlayerSurfaceView extends SurfaceView implements Callback { boolean isSystemPlayer = true; boolean surfaceCreateIsReady; String tag = "PlayerSurfaceView"; OnCreateExecuted mExecuted; public YouPlayerSurfaceView(Context context, AttributeSet attrs) { super(context, attrs); getHolder().addCallback(this); if( getId() == R.id.fullplayer_surface_view_system ){ isSystemPlayer = true; getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } else{ isSystemPlayer = false; getHolder().setType(SurfaceHolder.SURFACE_TYPE_NORMAL); } } @Override public void surfaceCreated(SurfaceHolder holder) { LOG.i(tag,"surfaceCreated"); surfaceCreateIsReady = true; if(mExecuted != null ){ mExecuted.onCreated(this); mExecuted = null; } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { LOG.i(tag,"surfaceDestroyed"); surfaceCreateIsReady = false; } public void setOnCreateExecute( OnCreateExecuted executed){ if( surfaceCreateIsReady ) executed.onCreated(this); else mExecuted = executed; } public static interface OnCreateExecuted{ public void onCreated(SurfaceView sv); } }