【发布时间】:2018-06-22 18:51:27
【问题描述】:
我有一个在那里播放视频的布局,我想在这个播放器上处理 onClick。在我的线性布局中,我有他们 api 中建议的 youtube 片段:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/youtubePlayerFragment"/>
</LinearLayout>
然后我在我的 Activity 中访问这个片段:
mYouTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtubePlayerFragment);
然后我初始化它:
mYouTubePlayerFragment.initialize(CategoriesTabsData.DEVELOPER_KEY, new com.google.android.youtube.player.YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(com.google.android.youtube.player.YouTubePlayer.Provider provider, com.google.android.youtube.player.YouTubePlayer youTubePlayer, boolean b) {
// loading the video
}
@Override
public void onInitializationFailure(com.google.android.youtube.player.YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
}
});
我想在点击播放器时将“点击”打印到 Log.d。因此,当播放视频并单击/触摸其播放器时,我想将“单击”打印到日志
我正在尝试处理对播放器的点击(我在 onInitializationSuccess 中获得了 youtubeplayer 对象)但我没有成功。
我试过了:
mYouTubePlayerFragment.getView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("youtube", "click");
}
});
但它没有到达 onClick。然后我尝试创建扩展 YouTubePlayerFragment 并实现 View.OnClickListener 的 MyYouTubePlayerFragment,因此我在我的 xml 中使用适当的名称 (com.mypackagename.MyYouTubePlayerFragment) 设置片段并将 mYouTubePlayerFragment 的类型设置为 MyYouTubePlayerFragment 但它没有到达 onClick。
如何“捕捉”视频的点击?
【问题讨论】:
-
当我添加dispatchTouchEvent时,当播放器全屏并且我触摸它时,它不会到达此代码。只有当播放器尺寸较小时,它才会识别我的点击
-
这意味着播放器与播放器开始全屏活动,或者它是不同的视图
-
播放器全屏启动,它位于一个片段中,名称为:android:name="com.google.android.youtube.player.YouTubePlayerFragment"。那么我不应该以全屏方式启动它吗?我怎么知道点击的是播放器而不是下面的布局?
-
您是否尝试在 LinearLayout 中添加点击监听器?
标签: android android-fragments youtube-api youtube-data-api