YouTubePlayerView初始化失败

7
我在我的项目中使用了 YouTubePlayerView,但播放视频时出现了问题。我在一些设备上进行了测试:
  1. Moto lollipop (api 22) --> 显示“不幸的是,Youtube已停止运行”

  2. Swipe Marshmallow (api 23) --> 它一直在加载并在左下角显示文本 Ad。但是视频之前没有广告。没有错误或异常,只显示警告:

W/System: ClassLoader referenced unknown path: /system/app/YouTube/lib/arm64

我在SO上搜索过。在ClassLoader引用未知路径:/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();
                        }
                    });
                }
            });

有人能帮我吗!!!

展示你的代码和XML。 - Developer Hitesh
@DeveloperHitesh,请检查已编辑的帖子。 - Jyoti JK
是的,ID 不是问题。 - Jyoti JK
请查看以下链接:https://dev59.com/uWIj5IYBdhLWcg3waEVe#20363160 - Developer Hitesh
@DeveloperHitesh 我没有设置任何限制。 - Jyoti JK
显示剩余5条评论
1个回答

2

试试这样做,如果有帮助的话

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

但是有什么区别呢? - Jyoti JK
我已经使用了YouTube播放器视图,就像这样,所以我建议。 - Developer Hitesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接