2014-10-08 24 views
5

Tôi đã phát thành công video trên youtube bằng cách sử dụng youtube player api. Nhưng tôi cần phải chạy nó trong nền trên press.I nút quay lại đã googled rất nhiều nhưng không tìm thấy gì Xin hãy giúp tôi để đạt được this.Thanks trướcPhát video trên Youtube ở chế độ nền bằng trình phát youtube api

đây là số- tôi

public class FullscreenDemoActivity extends YouTubeFailureRecoveryActivity 
     implements View.OnClickListener, 

     YouTubePlayer.OnFullscreenListener { 
// private MyPlaybackEventListener myPlaybackEventListener; 
    private static final int PORTRAIT_ORIENTATION = Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT 
      : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; 

    private LinearLayout baseLayout; 
    private YouTubePlayerView playerView; 
    public YouTubePlayer player; 
    private Button fullscreenButton; 
    private CompoundButton checkbox; 
    private View otherViews; 

    private boolean fullscreen; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.fullscreen_demo); 
     baseLayout = (LinearLayout) findViewById(R.id.layout); 
     playerView = (YouTubePlayerView) findViewById(R.id.player); 
     fullscreenButton = (Button) findViewById(R.id.fullscreen_button); 
     checkbox = (CompoundButton) findViewById(R.id.landscape_fullscreen_checkbox); 
     otherViews = findViewById(R.id.other_views); 
     playerView.initialize(DeveloperKey.DEVELOPER_KEY, this); 

    } 

    @Override 
    public void onInitializationSuccess(YouTubePlayer.Provider provider, 
      YouTubePlayer player, boolean wasRestored) { 
     this.player = player; 
     setControlsEnabled(); 
     // Specify that we want to handle fullscreen behavior ourselves. 
     player.addFullscreenControlFlag(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT); 
     player.setOnFullscreenListener(this); 
     if (!wasRestored) { 
      player.cueVideo("avP5d16wEp0"); 
     } 
     int controlFlags = player.getFullscreenControlFlags(); 
     setRequestedOrientation(PORTRAIT_ORIENTATION); 
     controlFlags |= YouTubePlayer.FULLSCREEN_FLAG_ALWAYS_FULLSCREEN_IN_LANDSCAPE; 
     player.setFullscreenControlFlags(controlFlags); 
     player.play(); 


    } 

    @Override 
    protected YouTubePlayer.Provider getYouTubePlayerProvider() { 
     return playerView; 
    } 

    @Override 
    public void onClick(View v) { 
     player.setFullscreen(!fullscreen); 
    } 



    private void doLayout() { 
     LinearLayout.LayoutParams playerParams = (LinearLayout.LayoutParams) playerView 
       .getLayoutParams(); 
     if (fullscreen) { 
      // When in fullscreen, the visibility of all other views than the 
      // player should be set to 
      // GONE and the player should be laid out across the whole screen. 
      playerParams.width = LayoutParams.MATCH_PARENT; 
      playerParams.height = LayoutParams.MATCH_PARENT; 

      otherViews.setVisibility(View.GONE); 
     } else { 
      otherViews.setVisibility(View.VISIBLE); 
      ViewGroup.LayoutParams otherViewsParams = otherViews 
        .getLayoutParams(); 
      if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { 
       playerParams.width = otherViewsParams.width = 0; 
       playerParams.height = WRAP_CONTENT; 
       otherViewsParams.height = MATCH_PARENT; 
       playerParams.weight = 1; 
       baseLayout.setOrientation(LinearLayout.HORIZONTAL); 
      } else { 
       playerParams.width = otherViewsParams.width = MATCH_PARENT; 
       playerParams.height = WRAP_CONTENT; 
       playerParams.weight = 0; 
       otherViewsParams.height = 0; 
       baseLayout.setOrientation(LinearLayout.VERTICAL); 
      } 
      setControlsEnabled(); 
     } 
    } 

    private void setControlsEnabled() { 
     checkbox.setEnabled(player != null 
       && getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT); 
     fullscreenButton.setEnabled(player != null); 
    } 

    @Override 
    public void onFullscreen(boolean isFullscreen) { 
     fullscreen = isFullscreen; 
     doLayout(); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     // System.out.println(getScreenOrientation()); 
     doLayout(); 
    } 

    private final class MyPlaybackEventListener implements PlaybackEventListener { 

      private void updateLog(String prompt){ 
     System.out.println(prompt); 
      }; 

      @Override 
      public void onBuffering(boolean arg0) { 
      updateLog("onBuffering(): " + String.valueOf(arg0)); 
      } 

      @Override 
      public void onPaused() { 

      updateLog("onPaused()"); 
      } 

      @Override 
      public void onPlaying() { 
      updateLog("onPlaying()"); 

      } 

      @Override 
      public void onSeekTo(int arg0) { 
      updateLog("onSeekTo(): " + String.valueOf(arg0)); 
      } 

      @Override 
      public void onStopped() { 
       player.loadVideo("avP5d16wEp0"); 

       player.cueVideo("avP5d16wEp0"); 
       player.play(); 
      updateLog("onStopped()"); 
      } 

     } 

} 

Trả lời

1

Tôi tìm kiếm chủ đề đó và tôi thấy rằng không có cách chính thức và sẽ không theo this page trên mã Google.

Trong đó, họ đề xuất bạn tạo trình phát.

Ẩn trình phát.

Tắt tiếng trình phát.

Gọi hàm ToTo() bằng videoId của bạn và bù trừ tùy chọn.

Đợi thay đổi trạng thái thành "đang phát".

Tạm dừng báo chí.

Gọi tìm kiếmTo (originalOffset, false).

Hiển thị trình phát.

Trình phát trình phát. (hay bất cứ cái gì).

Nó có thể không làm những gì bạn cần nhưng có thể bạn có thể thay đổi những gì bạn cần để đạt được mục tiêu của bạn bằng cách sử dụng phương pháp này.

+0

Vấn đề với giải pháp đó là trình phát YouTube sẽ dừng lại một lần và Hoạt động/Phân đoạn ở chế độ nền, tôi cần nó để tiếp tục phát – BoazGarty

+0

Tôi không biết nhiều về những gì tôi sẽ nói bây giờ. Làm thế nào về việc sử dụng một dịch vụ mà xử lý các đệm sau đó vượt qua nó để hoạt động. Tôi sẽ xem xét nó với bạn và nếu có ai tìm thấy điều gì đó, anh ấy sẽ đăng nó ở đây. – Abkarino

+0

có thể điều này có thể giúp bạn. https://groups.google.com/forum/#!topic/android-developers/3sEonjD0Nqk – Abkarino

0

Kiểm tra trạng thái của trình phát khi nút quay lại được nhấp vào, tôi nghĩ rằng nó sẽ ở trạng thái tạm dừng và trạng thái đệm. bạn có thể thử vá nó trên người nghe, người nghe onbuffering, gọi playvideo/thay đổi trạng thái để phát video. Tôi đã thử và đã làm việc cho iOS, không biết những hạn chế nền tảng về ngữ cảnh này.

+0

Tuy nhiên, điều đó có thể khiến người chơi dừng lại và chơi lại. và tôi cần nó tiếp tục chơi như màn hình ở phía trước. – BoazGarty

+0

video không bị dừng nhưng bị tạm dừng, vì vậy video phát từ vị trí bị tạm dừng, hãy thử làm việc chắc chắn nó hoạt động @david – Rakii

+0

Tôi biết rằng video đã tạm dừng Tôi đã triển khai, tôi cần video tiếp tục phát và không tạm dừng ~ giây và hơn chơi. – BoazGarty

Các vấn đề liên quan