ViewPager和YouTube API

问题描述 投票:0回答:1

我需要开发包含多个屏幕的应用程序,每个屏幕只包含视频和pic或pic ..每个时间间隔在这个屏幕之间摆动

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

我尝试将视图寻呼机与YouTube播放器API一起使用,但每个视频工作几秒钟然后停止并抛出此警告

“由于播放器顶部未经授权的叠加,YouTube视频播放停止。有关com.google.android.youtube.player的YouTubePlayerView被遮挡”

附上我的代码截图。

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

我试图通过使用片段和使用计时器在片段之间滑动来构建这个没有视图寻呼机但也得到相同的问题

我也尝试使用Web视图,但无法处理之前说过的提示

是否有任何viewPager问题的解决方案,或构建此应用程序的另一个想法?

这是我的主要活动

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适配器方法:

@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;

            }

        }

视频片段的构造函数:

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的vedio片段:

<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>
android android-fragments android-viewpager youtube-api
1个回答
0
投票

当您将YoutubeFragment与其他视图(如imageview)“叠加”时,会出现此问题。一个可行的解决方案是,如果您可以在播放视频时隐藏图像视图,并且您不再看到此警告。仅在视频开始时放置:

videoFragmentImageView.setVisibility(View.GONE) 

同时检查您是否在FloatingActionButton或其他其他方面没有其他视图,隐藏此视图。告诉我们这是否有效

© www.soinside.com 2019 - 2024. All rights reserved.