Я использовал YouTubePlayerView в своем проекте. Но при воспроизведении видео возникла проблема.
И тестировал на некоторых устройствах,
Moto lollipop (api 22) -> Показывает "к сожалению, Youtube остановился"
Проведите по экрану Marshmallow (api 23) -> It продолжает загружаться и отобразите текст Ad слева внизу. Но перед видео нет рекламы. И нет ошибок или исключений. Отображается предупреждение в виде,
,
W/System: ClassLoader referenced unknown path: /system/app/YouTube/lib/arm64
Я искал в ТАК. Решения в 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();
}
});
}
});
Может кто-нибудь мне помочь!!!
@DeveloperHitesh, пожалуйста, проверьте отредактированный пост
Вы проверили свой экстрактYTid получает правильный идентификатор
Да, проблема не в идентификаторе
проверьте это stackoverflow.com/a/20363160/9674630
Вы не установили свои ограничения API?
@DeveloperHitesh Я не устанавливал никаких ограничений
проверьте это evenidontknow.com/Working-YouTube-api-android-part2.html
Пожалуйста, опубликуйте всю трассировку стека
У вас возникает эта проблема только на вышеупомянутых устройствах или на всех
Попробуйте, если это поможет
videoplayer=youTubePlayer;
videoplayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL)
videoplayer.loadVideo(extractYTId(nhBean.gtURL()));
videoplayer.play();
Но в чем разница?
Я использовал такой вид плеера YouTube, поэтому предлагаю
покажи свой код и xml