Problema con la vista de vídeo en android 4.0 y superior

Estoy intentando reproducir video desde la url de streaming. El código es como sigue

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(); } } } 

Esto funciona bien en el dispositivo Android con la versión por debajo de 4,0 (con pausa y reanudar con el botón de modo de suspensión). Pero cuando estoy tratando de reproducir vídeo en el teléfono android tener version4.0 o posterior de vídeo se jugará bien, pero cuando el teléfono se va a dormir modo y reanudar de nuevo desde el modo de sueño el tamaño de la vista de vídeo se convirtió en la mitad de la pantalla. Como sigue Introduzca aquí la descripción de la imagen

¿por favor ayuda?

Gracias por adelantado…..

Que está haciendo es correcto, pero ha aplicado setContentView (R.layout.video_player); Sólo unos, aunque el vídeo se reanuda. Así que el código debe ser

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupViews(); } private void setupViews() { setContentView(R.layout.video_player); context=VideoPlayer.this; ----- ------ } 

En lugar de

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.video_player); setupViews(); } private void setupViews() { context=VideoPlayer.this; ----- ------ } 
  • Cómo reproducir vídeos desde la tarjeta SD
  • Cómo cerrar Landscape VideoView Activity correctamente?
  • Cómo detectar si VideoView está reproduciendo video o Buffering?
  • Cómo modificar el ancho de videoview programatically
  • Uso de VideoView para streaming o video de descarga progresiva
  • Android VideoView inicia muchos videos secuencialmente
  • Problema de parpadeo de VideoView
  • No se pudo abrir el archivo en el lado del cliente, intentando el lado del servidor Error en Android
  • Reproducir vídeo en parte de la pantalla
  • Reanudar la reproducción de VideoView desde onResume
  • VideoView flash negro antes y después de jugar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.