14

我有一个带有片段的应用程序,在这些片段中我有框架布局,我在其中添加了 YouTubePlayerSupportFragment。但是当我单击全屏时,会引发此异常:

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.xxx/com.example.xxx.MainActivity}:java.lang.IllegalArgumentException:找不到 id 0x7f040039 的视图(com.example.xxx:id/frame_youtube)对于片段 YouTubePlayerSupportFragment{4282a068 #11 id=0x7f040039}

4

3 回答 3

42

或者您可以通过 1 行禁用它:

player.setShowFullscreenButton(false);
于 2015-01-29T07:55:04.413 回答
18

我遇到了同样的问题,并找到了一种对我有用的方法来处理它。在OnInitializedListener()片段中,我这样做:

@Override
public void onInitializationSuccess(Provider arg0,
final YouTubePlayer player, boolean arg2) {
//Tell the player you want to control the fullscreen change
player.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CUSTOM_LAYOUT);
//Tell the player how to control the change
player.setOnFullscreenListener(new OnFullscreenListener(){
@Override
public void onFullscreen(boolean arg0) {                    
// do full screen stuff here, or don't. I started a YouTubeStandalonePlayer 
// to go to full screen
}});

}});

而且我仍然遇到错误,因为我使用YouTubeStandalonePlayer来处理我的全屏,所以我通过调用解决了这个问题

finish(); 

在我OnPause()的活动中。请记住,如果您的用户点击后退按钮,您将不会回到您离开的地方。您还可以通过意图将用户发送到 YouTube 应用程序,这在我测试时不需要finish()OnPause,但不适合我的需求以及独立播放器。

编辑:如果要删除全屏按钮,也可以像这样设置播放器样式:

PlayerStyle style = PlayerStyle.MINIMAL;
player.setPlayerStyle(style);
于 2013-03-20T17:19:04.770 回答
0
  1. 如果要全屏显示youTubePlayer.setFullscreen(true);

  2. 如果您想在全屏或竖屏模式下隐藏全屏按钮youTubePlayer.setShowFullscreenButton(false);

  3. 您还可以使用最新 API 中提供的 PlayerStyle 选项

  • YouTubePlayer.PlayerStyle.CHROMELESS 一种不显示交互式播放器控件的样式。(无控制)

  • YouTubePlayer.PlayerStyle.DEFAULT 默认样式,显示所有交互控件。(所有控件)

  • YouTubePlayer.PlayerStyle.MINIMAL 极简风格,仅显示时间栏和播放/暂停控件。(只能暂停/播放)

于 2020-09-05T06:52:21.623 回答