YouTubePlayerView初始化失败

时间:2018-05-03 10:28:17

标签: android youtube-api youtubeplayer

我在我的项目中使用了YouTubePlayerView。但播放视频时出现问题。

我在某些设备上测试了它,

  1. Moto棒棒糖(api 22) - >节目"不幸的是Youtube已停止"

  2. Swipe Marshmallow(api 23) - > 继续加载并在左侧底部显示文字 Ad 。但视频在它之前没有广告。并且没有错误或异常,它显示警告,因为, ,

  3.   

    W / System:ClassLoader引用了未知路径:   /系统/应用程序/的YouTube / LIB / arm64

    我在SO搜索过。 ClassLoader referenced unknown path: /data/app/中的解决方案对我不起作用。而且这个问题没有解决方案"视频继续加载"

    我尝试了所有相关帖子的解决方案,但不适合我的情况。

    我使用了Recyclerview,该项目有Youtubeplayerview,

    xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        android:background="?android:solidColor"
        android:id="@+id/newsLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <com.google.android.youtube.player.YouTubePlayerView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/video"
            android:background="#000"
            />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1.5"
            android:orientation="vertical"
            android:padding="4dp">
                 <!-- other views -->
        </LinearLayout>
    
    </LinearLayout>
    

    Java代码,

    holder.video.initialize(MyDa.YoutubeApi, new YouTubePlayer.OnInitializedListener() {
                    @Override
                    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                        youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL);
                        youTubePlayer.loadVideo(extractYTId(nhBean.gtURL()));
                        youTubePlayer.play();
                        videoplayer=youTubePlayer;
                    }
    
                    @Override
                    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
                        ((Activity)context).runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(context,"can't play video",Toast.LENGTH_SHORT).show();
                            }
                        });
                    }
                });
    

    任何人都可以帮助我!!!

1 个答案:

答案 0 :(得分:2)

尝试这样如果这有帮助

    videoplayer=youTubePlayer;
    videoplayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL)           
    videoplayer.loadVideo(extractYTId(nhBean.gtURL()));
    videoplayer.play();