2014-02-10 22 views
1

我設計了我的應用程序以全屏模式工作。沒有狀態欄和操作欄可見。這假設一個問題,因爲每次從YouTube上加載視頻到YoutubeAndroidPlayerAPI狀態欄出現。Android youtube-api取消活動中的FLAG_FULLSCREEN

我的活動:

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    overridePendingTransition(R.anim.activity_open_translate,R.anim.activity_close_scale); 

    this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    if(getActionBar()!=null) { 

     ActionBar actionBar = getActionBar(); 
     actionBar.hide(); 
    } 
    setContentView(R.layout.activity_fad_socios); 
    ... 
} 
... 
private void changeFragment(int index) { 

    switch(index) { 

     case 0:{ 
      getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer, new FADFragment(),"informacion").commit(); 
      break; 
     } 
    ... 
} 

我指的方式YoutubeAPI球鐵QT500我的片段:

  fragmentManager = getActivity().getSupportFragmentManager(); 
      fragmentTransaction = fragmentManager.beginTransaction(); 

      fragment = new YouTubePlayerSupportFragment(); 
      fragmentTransaction.add(R.id.fragmentz, fragment); 
      fragmentTransaction.commit(); 

        portadaFrag.setVisibility(View.GONE); 

        if(buttonSelected == 0) { 

         ((FADSociosActivity) getActivity()).playingYoutube=true; 

         fragment.initialize(getActivity().getResources().getString(R.string.youKEY), new OnInitializedListener(){ 

          @Override 
          public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) { 

           Log.e("fail","fail"); 
          } 

          @Override 
          public void onInitializationSuccess(Provider arg0, YouTubePlayer arg1, boolean arg2) { 

           youtubePlayer = arg1; 

           youtubePlayer.loadVideo("-D-MVgOvvOo"); 

           youtubePlayer.setPlaybackEventListener(new PlaybackEventListener() { 

            @Override 
            public void onBuffering(boolean arg0) { 

             try { 
              ((FADSociosActivity) getActivity()).refreshWindow(); 
             } 
             catch(Exception e) {} 
            } 

            @Override 
            public void onPaused() { 

             try { 
              ((FADSociosActivity) getActivity()).playingYoutube=false; 
              ((FADSociosActivity) getActivity()).refreshWindow(); 
             } 
             catch(Exception e) {} 
            } 

            @Override 
            public void onPlaying() { 

             try { 

              youtubePlayButton.setVisibility(View.GONE); 
              ((FADSociosActivity) getActivity()).playingYoutube=true; 
              ((FADSociosActivity) getActivity()).refreshWindow(); 
             } 
             catch(Exception e) {} 
            } 

            @Override 
            public void onSeekTo(int arg0) { 

             try { 
              ((FADSociosActivity) getActivity()).refreshWindow(); 
             } 
             catch(Exception e) {} 
            } 

            @Override 
            public void onStopped() { 

             try { 

              youtubePlayButton.setVisibility(View.VISIBLE); 
              ((FADSociosActivity) getActivity()).playingYoutube=false; 
              ((FADSociosActivity) getActivity()).refreshWindow(); 
             } 
             catch(Exception e) {} 
            } 

           }); 

的第一個活動裏面我refreshWindow方法:

public void refreshWindow() { 

    try { 

     getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
     getWindow().getDecorView().findViewById(android.R.id.content).invalidate(); 
    } 
    catch(Exception e) { 

     e.printStackTrace(); 
    } 
} 

使用能這種方法IM強制活動在s稍微不合需要的傾斜之後再次處於全屏模式tatus酒吧。無論如何,每次用戶點擊視頻時,活動都會退出全屏模式。似乎YoutubePlayer-API覆蓋了我的FLAG_FULLSCREEN,我無法避免這種情況。任何人都知道如何克服這一點?提前致謝。

回答

1

好,初始化後設置標誌YouTubePlayer.FULLSCREEN_FLAG_CONTROL_ORIENTATION似乎解決這個問題=)

1

在我而言,我不得不所有標誌復位onInitializationSuccess,從不顯示狀態欄都:

player.setFullscreenControlFlags(-1);