Youtube_player_flutter: [バグ]ビデオの無限の読み込み

作成日 2020年03月07日  ·  24コメント  ·  ソース: sarbagyastha/youtube_player_flutter

バグを説明する
アプリに実装されているデフォルトの例をテストしましたが、動画が無限に読み込まれています。デバッグコンソールの最後のメッセージは次のとおりです。
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ビデオが表示され、ユーザーが再生を開始するのを待つ必要があります

技術的な詳細:

  • デバイス:エミュレーター
  • OS:Android
  • バージョンAPI28

    • Flutterマスターチャネル(最新のアップデート)ですが、ベータチャネルでも同じ問題が発生します

追加のコンテキスト
このバグレポートを確認しました: 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.
bug question

最も参考になるコメント

Android Pixel 2XLエミュレーターでも同じ問題が発生します。 v6.1.1にダウングレードすると、ビデオがロードされます。

minSdkVersion 21

webview_flutterは含めません。

初期化はかなり簡単です:

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

全てのコメント24件

同じ問題。 進捗状況や回避策はありますか?

同じ問題があります。 ビデオは永久にロードされています。

これは、リリースビルドの実際のAndroidデバイスでのみ発生します。
Androidエミュレーター(デバッグ)が機能し、iOSシミュレーター(デバッグ)とデバイス(リリース)も機能します。

デバイス:Samsung Galaxy A6
Android:9(パイ)
Flutter 1.12.13 + hotfix.9
youtube_player_flutter:^ 6.1.0 + 7

これは本当にショートッパーであり、代わりにflutter_youtube_viewのようなものを使用することを考えさせてくれます...

さらに調査した結果、問題の理由が見つかりました。 新しいフラッタープロジェクトを作成した後、Androidの権限を手動で設定する必要があるようです。 デフォルトでは、リリースバージョンには権限がありません->インターネットへのアクセスはありません。 したがって、youtube-playerはソースファイルにアクセスできず、永久にロードされます。 AndroidManifest.xmlに以下を追加すると、問題が解決しました。

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

解決策が見つかりました:インストール時にFlutterリリースされたアプリがデバイスで機能しない

さらに調査した結果、問題の理由が見つかりました。 新しいフラッタープロジェクトを作成した後、Androidの権限を手動で設定する必要があるようです。 デフォルトでは、リリースバージョンには権限がありません->インターネットへのアクセスはありません。 したがって、youtube-playerはソースファイルにアクセスできず、永久にロードされます。 AndroidManifest.xmlに以下を追加すると、問題が解決しました。

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

解決策が見つかりました:インストール時にFlutterリリースされたアプリがデバイスで機能しない

それは私にはうまくいきません。

それでも同じ問題があります。

私にとってもiOSデバイスやシミュレーターでは動作しません。 6.1.0 +7を使用する

この無限のロード中にFullScreenを実行しようとすると、エラーが発生します。無効なビデオID =エラーコード:1

私も同じ問題を抱えていました。
この例は正常に機能していましたが、既存のプロジェクト内でプラグインを使用すると、読み込みが無限になります。

私の場合、問題の原因はwebview_flutter:^ 0.3.20 + 2

pubspecからこの依存関係を削除すると、問題が解決しました

私の問題は、ビデオIDが実際に公開されるのを待っていることに気づきました。 x日でプレミア公開するように設定します。 プレミア公開しようとしているビデオを再生しようとすると、実際のYouTubeプレーヤーがこれを言います。 多分これは追加機能になるはずです

iOS9.3.5を搭載したiPad3でも同じ問題が発生しましたが、上記のいずれも役に立ちませんでした

v7.0.0で修正する必要があります。

v7.0.0で修正する必要があります。

7.0.0+3を使用していますが、ビデオを開始する前の無限の読み込みがAndroidエミュレーターでまだ問題になっています

私は同じ無限の読み込みの問題を抱えています、この問題に関する更新はありますか?

Android Pixel 2XLエミュレーターでも同じ問題が発生します。 v6.1.1にダウングレードすると、ビデオがロードされます。

minSdkVersion 21

webview_flutterは含めません。

初期化はかなり簡単です:

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

Android Pixel 3でも同じ問題が発生します。動画は引き続き読み込まれ、iOSでも完全に機能します。

これはエミュレータだけの問題ですか? 誰かが実際のAndroidデバイスで試しましたか?

どんな更新でも役に立ちます。

ありがとう。

同じ問題が発生しています。
ビデオはうまく再生されますが、ローダーはビデオ画面の左下で回転し続けます。

誰かがこの問題の解決策を見つけましたか?

誰かがこの問題の解決策を見つけましたか?

6.1.1パッケージにダウングレード

返信してくれた@ JigarKotak7に感謝します。v6.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幸せそれはあなたのためにうまくいった。
以下のリンクには、クライアントの1つ用に作成したアプリのプレビューが少しあります。ここではYouTubeプレーヤーを使用しています。 ご不明な点がございましたら、お気軽にお問い合わせください。
https://www.youtube.com/watch?v=O3dy9p4ybes

@Hardikkr幸せそれはあなたのためにうまくいった。
以下のリンクには、クライアントの1つ用に作成したアプリのプレビューが少しあります。ここではYouTubeプレーヤーを使用しています。 ご不明な点がございましたら、お気軽にお問い合わせください。
https://www.youtube.com/watch?v=O3dy9p4ybes

私はまた、ビデオの再生にいくつかの問題があり、それが無限にロードされており、その理由を理解できません

同じ問題

私は同じ無限の読み込みの問題を抱えています、それはエミュレーターで動作していますが、実際のデバイスは動作していません

ねえ@santhoshisrimanthula
それがあなたに役立つ場合に備えて。 あなたの欲求不満を感じることができます笑。

それで。 最新バージョンはいくつかの電話で動作し、他の電話では動作しません。
アンドロイド版と関係があると思います

バージョンyoutube_player_flutter: ^6.1.1にダウングレードすることで、この問題を解決しました

image

私はデバッグマニフェストに対してのみインターネット許可を持っていました。 メインマニフェストにインターネット許可を追加した後、それは私のために働いた。

このページは役に立ちましたか?
0 / 5 - 0 評価