在Android中,如何使用带有指示器的Youtube Player?

时间:2018-08-07 15:29:10

标签: android youtube-api

在我的项目中,我使用youtube播放器。

我的项目是购物应用程序,我在ViewPager中设置了youtube播放器。 这是完美的。没问题。但是,我的客户想要添加圆圈指示器。

我不明白,它有问题。 我在XML文件中添加了指标,YouTube播放器仅播放一秒钟。我单击播放,播放一秒钟,然后再次停止。发生什么事了?

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btnMusicPlayer"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="bottom|right"
        android:layout_margin="15dp"
        android:background="@drawable/btn_music" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="260dp">

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager_main"
            android:layout_width="match_parent"
            android:layout_height="260dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true" />

        <me.relex.circleindicator.CircleIndicator
            android:id="@+id/indicators"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:layout_alignParentBottom="true" />

    </RelativeLayout>

</FrameLayout>

那是我的活动xml代码。 我用较低的代码将较低的xml插入ViewPager。(ViewPager适配器)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <view
        android:id="@+id/video_viewpager_childvideo"
        class="com.google.android.youtube.player.YouTubePlayerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"/>

</RelativeLayout>

它是ViewPager适配器。

    view= inflater.inflate(R.layout.layout_viewpager_child_video, null);

    final YouTubePlayerView video = (YouTubePlayerView) 
    view.findViewById(R.id.video_viewpager_childvideo);
    String fullurl = mediaUrls.get(position).getUrl();
    YouTubeHelper youTubeHelper = new YouTubeHelper();

    final String videoUrl = youTubeHelper.extractVideoIdFromUrl(fullurl);

    listener = new YouTubePlayer.OnInitializedListener(){

        @Override
        public void onInitializationSuccess(YouTubePlayer.Provider provider, 
    YouTubePlayer youTubePlayer, boolean b) {
            youTubePlayerInstance = youTubePlayer;
            youTubePlayer.cueVideo(videoUrl);
        }

        @Override
        public void onInitializationFailure(YouTubePlayer.Provider provider,
     YouTubeInitializationResult youTubeInitializationResult) {

        }
    };

    video.initialize(youTubeApiKey, listener);

如果我删除me.relex.circleindicator.CircleIndicator,就可以正常工作。 如果只是改变两个视图的位置,它也可以工作。

me.relex.circleindicator.CircleIndicator刚刚尝试。我尝试4种指示剂,任何人都有问题。 一次我只为一些阴影添加“视图”,它也有问题。

这个。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/btnMusicPlayer"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_gravity="bottom|right"
        android:layout_margin="15dp"
        android:background="@drawable/btn_music"
        android:onClick="onClickMusic" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="260dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true" />

    </RelativeLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="4dp"
        android:layout_gravity="top"
        android:layout_alignParentTop="true"
        android:background="@drawable/shadow_down" />

</FrameLayout>

我不明白,为什么btnMusicPlayer不会出错? 我认为YouTube播放器在某些方面有问题。是吗?

请帮助我!

2 个答案:

答案 0 :(得分:2)

我认为this是您想要的。它将允许您对API使用自定义UI。这是一个开放源代码库,旨在替代官方的YouTube Android Player API。

希望对您有帮助。

答案 1 :(得分:1)

如果您阅读了日志记录,就会发现您的视图无法与YouTubePlayer重叠,这就是它停止的原因。

您必须选择:

  1. 删除叠加的视图。
  2. 使用基于WebView的实现,例如android-youtube-player