Опишите ошибку
Я протестировал пример по умолчанию, реализованный в приложении, и видео загружается бесконечно, последнее сообщение в консоли отладки
W/System (14804): A resource failed to call release
Воспроизвести
Определите свой контроллер следующим образом в initState()
_controller = YoutubePlayerController(
initialVideoId: 'iLnmTe5Q2Qw',
flags: YoutubePlayerFlags(
forceHideAnnotation: true
),
);
И реализуйте свой виджет следующим образом:
YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
progressIndicatorColor: Colors.amber,
onReady: () {
print('Player is ready.');
},
),
Ожидаемое поведение
Рабочее видео YouTube должно отображаться и ждать, пока пользователь начнет его воспроизводить.
Технические детали:
Дополнительный контекст
Я проверил этот отчет об ошибке: https://github.com/flutter/flutter/issues/24565 .
Потому что контроллер отправляет одно и то же сообщение, если вы пытаетесь его использовать.
Дерево виджетов выглядит так:
Scaffold
|-> SingleChildScrollView
|-> Column
|-> YoutubePlayer
Полная консоль отладки с ошибкой:
D/EGL_emulation(14804): eglMakeCurrent: 0xe7195440: ver 3 1 (tinfo 0xe715fcd0)
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation(14804): eglCreateContext: 0xd2bf3640: maj 3 min 0 rcv 3
D/EGL_emulation(14804): eglMakeCurrent: 0xd2bf3640: ver 3 0 (tinfo 0xd0257060)
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
W/System (14804): A resource failed to call release.
I/flutter (14804): The controller is not ready for method calls.
Та же проблема. Есть прогресс или обходные пути?
У меня такая же проблема. Видео загружается бесконечно.
Это происходит только на реальном Android-устройстве в релизной сборке.
Эмулятор Android (отладка) работает, и симулятор iOS (отладка) и устройство (выпуск) тоже работают.
Устройство: Samsung Galaxy A6
Android: 9 (круговая)
Флаттер 1.12.13+исправление.9
youtube_player_flutter: ^6.1.0+7
Это действительно демонстративно и позволяет мне подумать об использовании вместо этого чего-то вроде flutter_youtube_view ...
Хорошо, после некоторого дальнейшего расследования я нашел причину моей проблемы. Кажется, что разрешения Android необходимо установить вручную после создания нового проекта флаттера. По умолчанию релизная версия не имеет никаких разрешений -> нет доступа к Интернету. Поэтому youtube-плеер не может получить доступ к исходному файлу и загружается навсегда. Добавление следующего в AndroidManifest.xml решило это для меня:
<uses-permission android:name="android.permission.INTERNET"/>
Решение найдено: выпущенное приложение Flutter не работает на устройстве при установке
Хорошо, после некоторого дальнейшего расследования я нашел причину моей проблемы. Кажется, что разрешения Android необходимо установить вручную после создания нового проекта флаттера. По умолчанию релизная версия не имеет никаких разрешений -> нет доступа к Интернету. Поэтому youtube-плеер не может получить доступ к исходному файлу и загружается навсегда. Добавление следующего в AndroidManifest.xml решило это для меня:
<uses-permission android:name="android.permission.INTERNET"/>
Решение найдено: выпущенное приложение Flutter не работает на устройстве при установке
Это не работает для меня.
Все еще есть та же проблема.
У меня тоже не работает на устройствах iOS или симуляторе. Использование 6.1.0+7
Еще одно замечание: если вы попытаетесь использовать полноэкранный режим во время этой бесконечной загрузки, вы получите сообщение об ошибке Invalid Video ID = Error Code: 1.
Я была такая же проблема.
пример работал нормально, но использование плагина в моем существующем проекте приводит к бесконечной загрузке.
В моем случае проблема была вызвана webview_flutter: ^0.3.20+2
Удаление этой зависимости из моего pubspec решило проблему
Я обнаружил, что моя проблема заключается в том, что идентификаторы видео действительно ждали публикации. Премьера назначена на x дней. Настоящий ютуб-плеер говорит это, если вы пытаетесь воспроизвести видео, премьера которого вот-вот начнется. Возможно, это должно быть добавленной функцией
Та же проблема на iPad 3 с iOS 9.3.5, и ничего из вышеперечисленного мне не помогло
Должно исправить с v7.0.0.
Должно исправить с v7.0.0.
Я использую 7.0.0+3
, но бесконечная загрузка перед запуском видео по-прежнему является проблемой для моего эмулятора Android.
У меня такая же проблема с бесконечной загрузкой, какие-нибудь обновления по этой проблеме?
Такая же проблема у меня и на эмуляторе Android Pixel 2 XL. Видео загружается, если я понизил версию до версии 6.1.1.
minSdkВерсия 21
Я не включаю webview_flutter.
Инициализация довольно проста:
_controller = YoutubePlayerController(
initialVideoId: videoID,
flags: YoutubePlayerFlags(
mute: false,
enableCaption: false,
autoPlay: false,
),
);
Та же проблема и у меня на Android Pixel 3. Видео продолжает загружаться, оно отлично работает на iOS.
это проблемы только с эмулятором ?? кто-нибудь пробовал на реальном устройстве Android?
Любое обновление поможет.
Спасибо.
Возникла та же проблема.
Видео воспроизводится хорошо, но загрузчик продолжает вращаться в левом нижнем углу видеоэкрана.
Кто-нибудь нашел решение этой проблемы?
Кто-нибудь нашел решение этой проблемы?
Переход на пакет 6.1.1
Спасибо @JigarKotak7 за ответ, я понизил его до версии 6.1.1, но он все еще не работал в эмуляторе. Итак, я попробовал идею @Gunlek с Define your controller in initState()
, и это сработало, это мой код:
class AboutTopic extends StatefulWidget {
final String videoLink;
AboutTopic({this.videoLink});
<strong i="9">@override</strong>
_AboutTopicState createState() => _AboutTopicState();
}
class _AboutTopicState extends State<AboutTopic> {
YoutubePlayerController _controller;
<strong i="10">@override</strong>
void initState() {
_controller = YoutubePlayerController(
initialVideoId:
YoutubePlayer.convertUrlToId(widget.videoLink),
flags: YoutubePlayerFlags(
mute: false,
autoPlay: true,
disableDragSeek: true,
loop: false,
enableCaption: false),
);
super.initState();
}
<strong i="11">@override</strong>
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('About'),
centerTitle: true,
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
)
),
body: YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
bottomActions: <Widget>[
const SizedBox(width: 14.0),
CurrentPosition(),
const SizedBox(width: 8.0),
ProgressBar(isExpanded: true),
RemainingDuration(),
],
aspectRatio: 4 / 3,
progressIndicatorColor: Colors.white,
onReady: () {
print('Player is ready.');
},
),
);
}
}
@Hardikkr Рад , что у тебя все получилось.
по ссылке ниже есть небольшой предварительный просмотр приложения, которое я создаю для одного из моих клиентов, где я использовал проигрыватель YouTube. Так что если у вас есть какие-либо вопросы, дайте мне знать.
https://www.youtube.com/watch?v=O3dy9p4ybes
@Hardikkr Рад , что у тебя все получилось.
по ссылке ниже есть небольшой предварительный просмотр приложения, которое я создаю для одного из моих клиентов, где я использовал проигрыватель YouTube. Так что если у вас есть какие-либо вопросы, дайте мне знать.
https://www.youtube.com/watch?v=O3dy9p4ybes
У меня также есть некоторые проблемы с воспроизведением видео, оно загружается бесконечно, и я не могу понять, почему
тоже такая же проблема
У меня такая же проблема с бесконечной загрузкой, она работает в эмуляторе, но на реальном устройстве не работает
привет @santoshisrimanthula
в случае, если это полезно для вас. Я чувствую твое разочарование, лол.
так. последняя версия работает на нескольких телефонах и не работает на других телефонах.
Я думаю, что это связано с версией андроида.
Я решил эту проблему, перейдя на версию youtube_player_flutter: ^6.1.1
У меня было разрешение на доступ в Интернет только для манифеста отладки. После добавления разрешения в Интернет в основной манифест у меня это сработало.
Самый полезный комментарий
Такая же проблема у меня и на эмуляторе Android Pixel 2 XL. Видео загружается, если я понизил версию до версии 6.1.1.
minSdkВерсия 21
Я не включаю webview_flutter.
Инициализация довольно проста: