YouTubePlayer(View)在横向上保持暂停状态

时间:2013-11-14 15:28:14

标签: android youtube-api android-youtube-api

我正在构建一个包含YouTubePlayerView和YouTubePlayer的应用,它在Portrait,Fullscreen-landscape中运行良好,但不适用于横向。按下播放后,它每秒都会暂停。缓冲区显示它已完全加载到某些视频上,但它会保持暂停状态。 我使用最新版本的YouTube应用在Android 2.2.2和Android 4.1.2上进行了测试。 这种情况发生在所有玩家风格中。

提前致谢。

2 个答案:

答案 0 :(得分:1)

确保YoutubePlayer视图的大小至少为200x110 dp,如Youtube API documentation中所述。在横向模式下听起来不符合这些要求。

答案 1 :(得分:0)

我遇到了同样的问题。但我只是使用以下概念,它将对我有用。

  1. 在您的活动布局xml中采用线性布局。
  2.     <LinearLayout android:id="@+id/ll_youtube_player"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginLeft="@dimen/_55sdp"
        android:layout_marginStart="@dimen/_55sdp"
        android:layout_marginRight="@dimen/_55sdp"
        android:layout_marginEnd="@dimen/_55sdp"
        android:orientation="vertical"
        />
    
    1. 采用youtube播放器定义的布局layout_youtube_video_view_detail.xml。
    2.     <com.google.android.youtube.player.YouTubePlayerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/you_tube_player_view" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"/>
      
      1. 在您的活动中,onCreate()会对youtube xml进行充气,并按代码添加到您的布局中:
      2. LinearLayout llYoutubePlayer = (LinearLayout)findViewById(R.id.ll_youtube_player); youTubePlayerView = (YouTubePlayerView) getLayoutInflater().inflate(R.layout.layout_youtube_video_view_detail, null); llYoutubePlayer.addView(youTubePlayerView); youTubePlayerView = (YouTubePlayerView) findViewById(R.id.you_tube_player_view); youTubePlayerView.initialize(AppConstants.YOU_TUBE_API_KEY, this);

        1. 在您的onInitializationSuccess中请传递视频ID。
        2. @Override public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) { player.setPlayerStateChangeListener(playerStateChangeListener); /** Start buffering **/ if (!wasRestored) { player.loadVideo(videoId); } new Handler().postDelayed(new Runnable() { @Override public void run() { youTubePlayerView.refreshDrawableState(); } }, AppConstants.DELAY_500); }

          我希望它能奏效。