Android:当以全屏模式播放YouTube视频时,您可以实时播放

问题描述:

我在您的活动中拥有一台管乐器。但是,我在使用视频的全屏选项时遇到了一些问题。Android:当以全屏模式播放YouTube视频时,您可以实时播放

当我第一次开始活动时,youtubeview显示并正确初始化,我可以看到视频播放它,并与它全屏。但是,当我按下按钮以超出全屏模式/旋转我的手机时,整个活动都将重新加载,并且活动中缺少youtubeview。这里是我初始化YouTube播放器/视图:

try { 
     final YouTubePlayerView youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view); 

     youTubeView.initialize("KEY", new YouTubePlayer.OnInitializedListener() { 
      @Override 
      public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean VidBool) { 
       if(ad==null || ad.getVideo_urls() == null) 
        return; 

       if (!VidBool) 
       { 
        try { 
         if (ad.getVideo_urls() != null && ad.getVideo_urls().length() > 0) { 
          String url = ad.getVideo_urls().getString(0); 
          if (url.contains("youtube")){          
           VideoID = "kQsN-pvokrw"; 
           youTubeView.setVisibility(View.VISIBLE); 
           MyYouTubePlayer = youTubePlayer; 
           MyYouTubePlayer.cueVideo(VideoID); 
           MyYouTubePlayer.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() { 
            @Override 
            public void onFullscreen(boolean b) { 
             fullScreen = true; 
            } 
           }); 
          } 
         } else { 
          youTubeView.setVisibility(View.GONE); 
          Log.i(Constants.getTag(), "Video not found"); 
          //Making sure the MyYouTubePlayer is null and if not is being released 
          if(MyYouTubePlayer != null) 
          { 
           MyYouTubePlayer.release(); 
           MyYouTubePlayer.setFullscreenControlFlags(-1); 
          } 
         } 
        } 
        catch (JSONException e) { 
         youTubePlayer.release(); 
         e.printStackTrace(); 
        } 
       } 

      } 

      @Override 
      public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) { 
       youTubeView.removeAllViews(); 
      } 
     }); 



     //Catching A dead object exception 
    } catch(Exception e){ 
     e.printStackTrace(); 
     Log.e("Youtube", "error initializing youtube"); 
    } 

如果你不希望的方向更改后重新创建你的Activty做,你必须在下一行添加到您的清单(活动标签中):

android:configChanges="orientation|screenSize" 

但你应该重写onConfigurationChanged该活动的方法,如果你想支持的方向变化。

@Override 
public void onConfigurationChanged(Configuration newConfig) {} 

延伸阅读:http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange