Youtube_player_flutter: [BUG] Unendliches Laden von Videos

Erstellt am 7. MĂ€rz 2020  Â·  24Kommentare  Â·  Quelle: sarbagyastha/youtube_player_flutter

Beschreiben Sie den Fehler
Ich habe das in einer App implementierte Standardbeispiel getestet und das Video wird unendlich geladen, die letzte Meldung in der Debug-Konsole lautet
W/System (14804): A resource failed to call release

Reproduzieren
Definieren Sie Ihren Controller wie folgt in initState()

_controller = YoutubePlayerController(
      initialVideoId: 'iLnmTe5Q2Qw',
      flags: YoutubePlayerFlags(
        forceHideAnnotation: true
      ),
    );

Und implementieren Sie Ihr Widget wie folgt:

YoutubePlayer(
            controller: _controller,
            showVideoProgressIndicator: true,
            progressIndicatorColor: Colors.amber,
            onReady: () {
                print('Player is ready.');
            },
          ),

Erwartetes Verhalten
Ein funktionierendes YouTube-Video sollte angezeigt werden und darauf warten, dass der Benutzer mit der Wiedergabe beginnt

Technische Details:

  • GerĂ€t: Emulator
  • Betriebssystem: Android
  • API-Version 28

    • Flutter-Master-Kanal (neuestes Update), aber das gleiche Problem auf dem Beta-Kanal

ZusÀtzlicher Kontext
Ich habe diesen Fehlerbericht ĂŒberprĂŒft: https://github.com/flutter/flutter/issues/24565
Weil der Controller dieselbe Nachricht sendet, wenn Sie versuchen, ihn zu verwenden.

Der Widget-Baum sieht folgendermaßen aus:

Scaffold
  |-> SingleChildScrollView
    |-> Column
      |-> YoutubePlayer

VollstÀndige fehlerhafte Debug-Konsole:

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.
bug question

Hilfreichster Kommentar

Dasselbe Problem fĂŒr mich auch auf dem Android Pixel 2 XL-Emulator. Das Video wird geladen, wenn ich auf v6.1.1 downgrade.

minSdkVersion 21

Ich fĂŒge webview_flutter nicht hinzu.

Die Initialisierung ist ziemlich einfach:

_controller = YoutubePlayerController(
        initialVideoId: videoID,
        flags: YoutubePlayerFlags(
          mute: false,
          enableCaption: false,
          autoPlay: false,
        ),
      );

Alle 24 Kommentare

Gleicher Fehler. Irgendwelche Fortschritte oder Problemumgehungen?

Ich habe das gleiche Problem. Video lÀdt ewig.

Es passiert nur auf einem echten Android-GerÀt im Release-Build.
Android Emulator (Debug) funktioniert und iOS Simulator (Debug) und Device (Release) funktionieren ebenfalls.

GerÀt: Samsung Galaxy A6
Android: 9 (Kuchen)
Flutter 1.12.13+Hotfix.9
youtube_player_flutter: ^6.1.0+7

Das ist wirklich ein Showstopper und lĂ€sst mich darĂŒber nachdenken, stattdessen so etwas wie flutter_youtube_view zu verwenden ...

Ok nach einigen weiteren Nachforschungen fand ich den Grund fĂŒr mein Problem. Es scheint, dass Android-Berechtigungen nach dem Erstellen eines neuen Flutter-Projekts von Hand festgelegt werden mĂŒssen. StandardmĂ€ĂŸig hat die Release-Version keine Berechtigungen -> kein Zugriff auf das Internet. Daher kann der YouTube-Player nicht auf die Quelldatei zugreifen und lĂ€dt ewig. Das HinzufĂŒgen des Folgenden zur AndroidManifest.xml hat es fĂŒr mich gelöst:

<uses-permission android:name="android.permission.INTERNET"/>

Lösung gefunden auf: Von Flutter veröffentlichte App funktioniert nicht auf dem GerÀt, wenn sie installiert ist

Ok nach einigen weiteren Nachforschungen fand ich den Grund fĂŒr mein Problem. Es scheint, dass Android-Berechtigungen nach dem Erstellen eines neuen Flutter-Projekts von Hand festgelegt werden mĂŒssen. StandardmĂ€ĂŸig hat die Release-Version keine Berechtigungen -> kein Zugriff auf das Internet. Daher kann der YouTube-Player nicht auf die Quelldatei zugreifen und lĂ€dt ewig. Das HinzufĂŒgen des Folgenden zur AndroidManifest.xml hat es fĂŒr mich gelöst:

<uses-permission android:name="android.permission.INTERNET"/>

Lösung gefunden auf: Von Flutter veröffentlichte App funktioniert nicht auf dem GerÀt, wenn sie installiert ist

Es funktioniert nicht fĂŒr mich.

Habe immer noch das gleiche Problem.

Funktioniert bei mir auch nicht auf iOS-GerÀten oder Simulator. Verwenden von 6.1.0+7

Ein weiterer Hinweis, wenn Sie versuchen, wĂ€hrend dieses unendlichen Ladevorgangs Vollbildmodus zu verwenden, erhalten Sie einen Fehler UngĂŒltige Video-ID = Fehlercode: 1

Ich hatte das gleiche Problem.
Das Beispiel hat gut funktioniert, aber die Verwendung des Plugins in meinem bestehenden Projekt fĂŒhrt zu unendlichem Laden.

In meinem Fall wurde das Problem durch webview_flutter verursacht: ^0.3.20+2

Das Entfernen dieser AbhÀngigkeit aus meiner Pubspec löste das Problem

Ich fand mein Problem, dass die Video-IDs tatsÀchlich darauf warteten, veröffentlicht zu werden. Auf Premiere in x Tagen eingestellt. Ein echter YouTube-Player sagt dies, wenn Sie versuchen, das Video abzuspielen, das kurz vor der Premiere steht. Vielleicht sollte dies ein zusÀtzliches Feature sein

Dasselbe Problem auf dem iPad 3 mit iOS 9.3.5, und nichts davon hat mir geholfen

Sollte mit v7.0.0 behoben werden.

Sollte mit v7.0.0 behoben werden.

Ich verwende 7.0.0+3 , aber das unendliche Laden vor dem Start des Videos ist immer noch ein Problem auf meinem Android-Emulator

Ich habe das gleiche Problem mit unendlichem Laden. Gibt es ein Update zu diesem Problem?

Dasselbe Problem fĂŒr mich auch auf dem Android Pixel 2 XL-Emulator. Das Video wird geladen, wenn ich auf v6.1.1 downgrade.

minSdkVersion 21

Ich fĂŒge webview_flutter nicht hinzu.

Die Initialisierung ist ziemlich einfach:

_controller = YoutubePlayerController(
        initialVideoId: videoID,
        flags: YoutubePlayerFlags(
          mute: false,
          enableCaption: false,
          autoPlay: false,
        ),
      );

Dasselbe Problem fĂŒr mich auch auf Android Pixel 3. Das Video wird weiter geladen, es funktioniert perfekt auf iOS.

ist das ein Problem nur mit dem Emulator? hat jemand auf einem echten Android-GerÀt versucht?

Jedes Update wĂŒrde helfen.

Danke schön.

Habe das gleiche Problem.
Das Video wird zwar gut abgespielt, aber der Loader dreht sich unten links auf dem Videobildschirm weiter.

Hat jemand eine Lösung fĂŒr dieses Problem gefunden?

Hat jemand eine Lösung fĂŒr dieses Problem gefunden?

Downgrade auf 6.1.1-Paket

Danke @JigarKotak7 fĂŒr die Antwort, ich habe es auf das v6.1.1-Paket heruntergestuft, aber es lief immer noch nicht im Emulator. Also habe ich die @Gunlek- Idee zu Define your controller in initState() ausprobiert und es hat funktioniert, das ist mein Code:

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 Freut mich , dass es fĂŒr dich geklappt hat.
Der folgende Link enthĂ€lt eine kleine Vorschau der App, die ich fĂŒr einen meiner Kunden erstellt habe, in der ich den YouTube-Player verwendet habe. Wenn Sie also Fragen haben, lassen Sie es mich wissen.
https://www.youtube.com/watch?v=O3dy9p4ybes

@Hardikkr Freut mich , dass es fĂŒr dich geklappt hat.
Der folgende Link enthĂ€lt eine kleine Vorschau der App, die ich fĂŒr einen meiner Kunden erstellt habe, in der ich den YouTube-Player verwendet habe. Wenn Sie also Fragen haben, lassen Sie es mich wissen.
https://www.youtube.com/watch?v=O3dy9p4ybes

Ich habe auch einige Probleme beim Abspielen von Videos, es lÀdt unendlich und ich kann nicht herausfinden, warum

auch gleiches Problem

Ich habe das gleiche Problem mit dem unendlichen Laden. Es funktioniert im Emulator, aber auf einem echten GerÀt funktioniert es nicht

Hallo @santhoshisrimanthula
falls es fĂŒr dich hilfreich ist. Ich kann deine Frustration fĂŒhlen lol.

Also. Die neueste Version funktioniert auf einigen Telefonen und nicht auf anderen Telefonen.
Ich denke, es hat etwas mit der Android-Version zu tun

Ich habe dieses Problem gelöst, indem ich auf die Version youtube_player_flutter: ^6.1.1 heruntergestuft habe

image

Ich hatte nur eine Internetberechtigung fĂŒr das Debug-Manifest. Nachdem ich dem Hauptmanifest eine Internetberechtigung hinzugefĂŒgt hatte, funktionierte es fĂŒr mich.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

rebeccalee-ysd picture rebeccalee-ysd  Â·  3Kommentare

snoopdoggy322 picture snoopdoggy322  Â·  4Kommentare

SayaGames picture SayaGames  Â·  3Kommentare

HiIamAlanOu picture HiIamAlanOu  Â·  3Kommentare

jimmyff picture jimmyff  Â·  3Kommentare