我在我的应用程序中使用Youtube Api for Android,并在我的活动中创建了新的YouTubePlayerView动态,例如:
YouTubePlayerView youTubePlayerView = new YouTubePlayerView(PlayerActivity.this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(640, 360);
layoutParams.setMargins(100, 200, 0, 0);
youTubePlayerView.setLayoutParams(layoutParams);
root.addView(youTubePlayerView);
作为代码,"根"是一个RelativeLayout,每个youTubePlayerView的大小和边距都不同;
该代码有时有效,但有时无效,它返回以下错误:
W/YouTubeAndroidPlayerAPI: YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is not contained inside its ancestor com.google.android.youtube.player.YouTubePlayerView{37ab2582 V.E..... ......ID 0,0-0,0}. The distances between the ancestor's edges and that of the YouTubePlayerView is: left: 0, top: 0, right: 0, bottom: 0 (these should all be positive).
或者这个
W/YouTubeAndroidPlayerAPI: YouTube video playback stopped due to the player's view being too small. The YouTubePlayerView is 0dp wide (minimum is 200dp) and 0dp high (minimum is 110dp).
有没有办法避免这种情况的发生,或者让它成功地播放视频。
我感谢你的帮助。
问候
基于Google官方文档,设置标志将处理UI元素可见性的任务留给您。
YouTube播放器会检测到一个视图正在显示,并发出警告。
您可以尝试使用以下附加标志之一:
FULLSCREEN_FLAG_ALWAYS_FULSCREEN_IN_LANDSCAPE:使播放器在设备进入横向时自动进入全屏。
FULLSCREEN_FLAG_CONTROL_ORIENTATION:启用方向的自动控制。
FULLSCREEN_FLAG_CONTROL_SYSTEM_UI:启用系统UI的自动控制。
FULLSCREEN_FLAG_CUSTOM_LAYOUT:禁用默认的全屏布局处理程序,使您能够手动控制向全屏布局的转换。