首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ViewPager和YouTube接口

ViewPager和YouTube接口
EN

Stack Overflow用户
提问于 2018-09-15 02:37:07
回答 1查看 231关注 0票数 0

我需要开发包含多个屏幕的应用程序,每个屏幕都包含视频和图片或图片。每个时间间隔在此屏幕之间摇摆

提示:用户不应通过停止视频或其他方式与视频进行交互

我尝试使用带有YouTube播放器API的视图分页程序,但每个视频都会工作几秒钟,然后停止并抛出此警告。

“由于播放器上存在未经授权的覆盖,YouTube视频播放已停止。YouTubePlayerView被com.google.android.youtube.player遮挡”

附上我的代码截图。

我搜索了很多关于这个问题的信息,但我没有得到我的代码的附加屏幕上的解决方案

我尝试在没有视图分页的情况下,使用片段和使用timer ..but在片段之间滑动,也得到了同样的问题

我也尝试使用web view,但无法处理前面提到的提示。

有没有解决viewPager问题的办法,或者有别的想法来构建这个应用程序?

这是我的主要活动

代码语言:javascript
复制
mPager.setAdapter(mPagerAdapter);
        mPager.setOffscreenPageLimit(1);
        pagerchangeListener = new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                mPagerAdapter.onPageChanged(position);
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        };
        mPager.addOnPageChangeListener(pagerchangeListener);

viewPager适配器方法:

代码语言:javascript
复制
@Override
        public Fragment getItem(int position) {

            if (data.get(position).getVideo() == null) {

                ImageFragment imageFragment = new ImageFragment();
                Bundle args = new Bundle();
                args.putString("IMAGE_URL", data.get(position).getImage());
                imageFragment.setArguments(args);
                return imageFragment;
            } else {

                Log.i("tag3", "getItem video" + String.valueOf(position));
                VideoFragment videoFragment =
                        VideoFragment.newInstance(data.get(position).getVideo(), data.get(position).getImage());
                listenerMap.put(position, videoFragment.getmInitializeListener());
                return videoFragment;

            }

        }

视频分片的构造函数:

代码语言:javascript
复制
public VideoFragment() {
        super();
        setRetainInstance(true);
        mInitializeListener = new InitializeListener() {
            @Override
            public void startVideo() {
                if (getUserVisibleHint())
                    initYoutube();
            }

            @Override
            public void stopVideo() {
                if (youTubePlayer1 != null)
                    youTubePlayer1.release();

            }
        };
    }

视频片段的xml:

代码语言:javascript
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.newConcept.education.galleryApp.fragment.VideoFragment">

    <FrameLayout
        android:id="@+id/VideoFragment_youtube_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />


    <ImageView
        android:id="@+id/VideoFragment_imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="fitXY"/>

</LinearLayout>
EN

Stack Overflow用户

发布于 2018-09-15 06:10:06

当你“覆盖”你的YoutubeFragment和其他视图,比如你的图像视图时,就会出现这个问题。一种可行的解决方案是,如果您可以在视频播放时隐藏图像视图,并且不再看到此警告。只在视频开始时放入:

代码语言:javascript
复制
videoFragmentImageView.setVisibility(View.GONE) 

另外,如果你在播放器前面没有其他视图,比如FloatingActionButton或其他,请隐藏此视图。告诉我们这是否有效

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52337567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档