Problem watching videos on Android 4.0 and higher

I am trying to play a video from a streaming URL. the code is as follows

public class VideoPlayer extends Activity  
{
    private VideoView mVideoView;            
    String videoURL="";
    static Utility utility;
    static Context context;
    MediaController mediaController;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {         
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_player);          
        setupViews();
    }

    private void setupViews() 
    {
        context=VideoPlayer.this;
        utility=new Utility(VideoPlayer.this);
        isActivityisRunning=true;
        showProgressDialog("Loading video..");
        videoURL=getIntent().getExtras().getString("url");            
        mVideoView=(VideoView)findViewById(R.id.video_view);
        mediaController=new MediaController(context);            
        mVideoView.setMediaController(mediaController);

        mVideoView.setOnPreparedListener(new OnPreparedListener() 
        {
            @Override
            public void onPrepared(MediaPlayer mp) 
            {
                hideProgressDialog();

                if(bIsOnPausedCalled)
                    mVideoView.seekTo(LastDuration);
                    mVideoView.start();                     
                    mVideoView.requestFocus();  
                    bIsOnPausedCalled=false;
                    LastDuration=0;
                }
            });

           mVideoView.setOnCompletionListener(new OnCompletionListener() 
            {

                @Override
                public void onCompletion(MediaPlayer mp) 
                {
                    finish();
                }
            }); 


           mVideoView.setOnErrorListener(new OnErrorListener() 
           {

            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) 
            {
                utility.hideProgressDialog();
                return false;
            }
        });

           playVideoFile();      
        } 

    public static void showDialog(String Message)
    {       
                alertDialog = new AlertDialog.Builder(context).create();  
                alertDialog.setTitle(Constant.DialogTitle);  
                alertDialog.setMessage(Message);  
                alertDialog.setCancelable(false);
                alertDialog.setButton("Ok", new DialogInterface.OnClickListener() 
                {  
                          public void onClick(DialogInterface dialog, int which) 
                          {             
                             dialog.dismiss();                          
                          } 
                }); 
                if(isActivityisRunning)
                    alertDialog.show();
                else
                    utility.showToast(Message);
    }

    static ProgressDialog progressDialog;
    static AlertDialog alertDialog;

    public  void showProgressDialog(String Message)
    {   
            hideProgressDialog();
            progressDialog=new ProgressDialog(context);
            progressDialog.setTitle(Constant.DialogTitle);
            progressDialog.setMessage(Message);                         
            if(isActivityisRunning)
                progressDialog.show();
            else
                utility.showToast(Message);
    }

    public static boolean isActivityisRunning;
    public static boolean showProgressDialog;


    public static boolean bIsOnPausedCalled=false;
    public static int LastDuration=0;

        @Override
        protected void onPause() 
        {   

            hideProgressDialog();
            bIsOnPausedCalled=true;
            isActivityisRunning=false;
            if (mVideoView != null)
            {       
                if(LastDuration==0)
                {
                    LastDuration=mVideoView.getCurrentPosition();
                    mVideoView.suspend();
                    mVideoView.setVisibility(View.GONE);    
                }               
            }
            super.onPause();
        }

        @Override
        protected void onResume() 
        {

            isActivityisRunning=true;
                if(bIsOnPausedCalled)
                {                       
                    setupViews();               
                }
                super.onResume();       
        }

        @Override
        protected void onDestroy() 
        {
            super.onDestroy();
            try 
            {               
                if (mVideoView != null) 
                {   
                    mVideoView.stopPlayback();
                    mVideoView=null;                
                    hideProgressDialog();
                    isActivityisRunning=false;
                     bIsOnPausedCalled=false;
                     LastDuration=0;
                }

            } catch (Exception e) 
            {}              
        }


    public static void hideProgressDialog()
    {
        if(progressDialog!=null)
        {
            if(progressDialog.isShowing())
            {
                progressDialog.dismiss();
            }           
        }
    }


    private void playVideoFile() 
        {

                try 
                {                   
                    mVideoView.setVideoURI(Uri.parse(videoURL));
                }
                catch (Exception e) 
                {
                    utility.hideProgressDialog();
                    if (mVideoView != null) 
                    {                   
                        mVideoView.stopPlayback();
                    }
                }
            }   

This works great on an Android device with a version lower than 4.0 (pause and resume with the standby button). but when I try to play the video on an Android phone that has version 4.0 or later, the video will play normally, but when the phone goes into sleep mode and resumes working in sleep mode, the size of the video image is half the screen. as belowenter image description here

please, help?

Thanks in Advance .....

+5
source share
1 answer

, , setContentView (R.layout.video_player); , .

@Override
public void onCreate(Bundle savedInstanceState) 
{         
    super.onCreate(savedInstanceState);                
    setupViews();
}

private void setupViews() 
{
    setContentView(R.layout.video_player);  
    context=VideoPlayer.this;
    -----
    ------
}

@Override
public void onCreate(Bundle savedInstanceState) 
{         
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.video_player);       
    setupViews();
}

private void setupViews() 
{
    context=VideoPlayer.this;
    -----
    ------
}
0

All Articles