4

我想在YouTubeLayerView浏览器但不知道最好的方法。我希望只有当用户单击屏幕打开youtube控件(播放/暂停、时间线、共享等)时,按钮才会出现,几秒钟后控件就会消失。我已经调查过了查看组覆盖但不确定这是否是最好的方法,我也不确定如何在控件可用时只将按钮添加到覆盖图中。感觉我必须覆盖其中一个YouTube播放器YouTubeLayerView浏览器函数来知道控件何时可见,但我只是在这里做一个假设。我对android比较陌生,已经有一段时间没有用Java做过任何严肃的事情了。如果其他人不知道确切的答案,那么这里的任何方向都是很好的。我看了大约2个小时才发布这个:)

包装com.example.something.exampletube;导入android.os。捆绑;导入android.view。ViewGroupOverlay;导入android.widget。干杯;导入com.google.android.youtube.player。YouTubeBaseActivity;导入com.google.android.youtube.player。YouTubeInitializationResult;导入com.google.android.youtube.player。YouTubePlayer;导入com.google.android.youtube.player。YouTubeLayerView;/***由Nicholas Dwyer于2015年4月17日创作。*这个类用于播放youtube视频*/公共类PlayerActivity扩展了YouTubeBaseActivity实现了YouTube播放器。OnInitializedListener上{YouTubePlayerView播放器查看;查看组覆盖组覆盖;@覆盖protected void onCreate(捆绑包){super.onCreate(捆绑包);setContentView(R.layout.activity_player);playerView=(YouTubePlayerView)findViewById(R.id.player_view);playerView.initialize(YoutubeConnector.KEY,this);groupOverlay=playerView.getOverlay();}@覆盖public void onInitializationSuccess(YouTubePlayer.Provider提供程序,YouTubePlayer YouTubePlayer,boolean restored){if(!已恢复){youTubePlayer.cueVideo(getIntent().getStringExtra(“VIDEO_ID”);}}@覆盖InitializationFailure上的公共void(YouTubeLayer.Provider提供程序,YouTubeInitialicationResult youTubeInnitializationResult){String errorMessage=“初始化YouTubePlayer时出错”+youTubeInitializationResult.toString();Toast.makeText(this,errorMessage,Toast.LENGTH_LONG).show();//Toast.makeText(this,getString(R.string.failed),Toast。LENGTH_LONG).show();}

}

3个答案

重置为默认值

无法按照谷歌的规定在播放器上方添加按钮作为覆盖:

https://developers.google.com/youtube/android/player/reference.com/google/android/youtube/player/YouTubeLayerView

请注意,在播放视频时,此视图的最小大小为200x110像素。如果您将视图缩小,视频将自动停止播放。此外,不允许覆盖播放视频时使用其他视图查看。

另请参见此处有可能在YouTube安卓播放器上叠加一些视图吗?

如果任何视图仅部分重叠(或YouTubeVideoView仅在可见屏幕外部分滚动),视频将在大约一秒钟后停止。据推测,谷歌这样做是为了防止视频被滥用在YouTube之外做广告。

备选方案:使用WebView并嵌入它。

0

另一个好的选择是使用Exoplayer公司,将视频覆盖在视图中。它不是android sdk的一部分,但它是谷歌推荐的,并包含在android开发者文档中:

http://google.github.io/ExoPlayer/ https://developer.android.com/guide/topics/media/exoplayer.html

Exoplayer允许您流式传输任何类型的视频,而不仅仅是Youtube视频。

值得一提的是,Exoplayer在Youtube应用程序中使用。

0

您可以将其添加到播放器内部,而不是将按钮添加为播放器上方的层:

按钮b=新按钮(this);b.setBackgroundResource(R.drawable.close);((ViewGroup)((ViewGroup)youTubeLayerView.getChildAt(0)).getChuldAt;b.setOnClickListener(新View.OnClickListener(){@覆盖单击时公共无效(视图v){onBackPressed();}});

为我工作。

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.