2012-08-22 20 views
5

पर वीडियो दृश्य समस्या मैं स्ट्रीमिंग यूआरएल से वीडियो चलाने की कोशिश कर रहा हूं। कोडएंड्रॉइड 4.0 और ऊपर

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

को इस Android उपकरण 4.0 नीचे संस्करण होने (ठहराव के साथ और स्लीप मोड बटन के साथ फिर से शुरू) पर ठीक काम करता है निम्नलिखित के रूप में है। लेकिन जब मैं संस्करण 4.0 या बाद में वीडियो वाले एंड्रॉइड फोन पर वीडियो चलाने की कोशिश कर रहा हूं तो वीडियो ठीक खेलेंगे लेकिन जब फोन नींद मोड में जाता है और नींद मोड से फिर से शुरू होता है तो वीडियो व्यू आकार स्क्रीन का आधा बन जाता है। जैसा कि enter image description here

कृपया मदद करें?

अग्रिम धन्यवाद .....

उत्तर

0

आप कर रहे हैं, वह सही है, लेकिन आप 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

धन्यवाद आदमी .... gr8 होना चाहिए –

संबंधित मुद्दे