我正在构建一个包含YouTubePlayerView和YouTubePlayer的应用程序,它在纵向,全屏横向中运行良好,但不能横向。在我按下播放后,它每秒都会暂停。缓冲区显示它已完全加载到某些视频上,但它一直暂停。我在Android 2.2.2和Android 4.1.2上使用最新版本的YouTube应用程序对其进行了测试。这发生在所有玩家风格中。
提前谢谢。
确保 YoutubePlayer 视图的大小至少为 200x110 dp,如 Youtube API 文档中所述。听起来它在横向模式下不符合这些要求。
我遇到了同样的问题。 但我只是使用以下概念,它将对我有用。
- 在活动布局 XML 中采用线性布局。
<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" />
- 采用layout_youtube_video_view_detail.xml定义YouTube播放器的布局。
<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"/>
- 在onCreate()中的活动中,膨胀youtube xml并通过代码添加布局:
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);
- 在您的初始化成功中,请传递视频 ID。
@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);
}
我希望它会起作用。