Youtube_player_flutter: [BUG] تحميل لا حصر له من الفيديو

تم إنشاؤها على ٧ مارس ٢٠٢٠  ·  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 يعمل وينتظر أن يبدأ المستخدم في تشغيله

تفاصيل تقنية:

  • الجهاز: المحاكي
  • نظام التشغيل: Android
  • إصدار API 28

    • قناة 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 2 XL. يتم تحميل الفيديو إذا رجعت إلى الإصدار 6.1.1.

الإصدار 21

أنا لا أقوم بتضمين webview_flutter.

التهيئة بسيطة إلى حد ما:

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

ال 24 كومينتر

المشكلة نفسها. أي تقدم أو حلول؟

لدي نفس المشكلة. يتم تحميل الفيديو إلى الأبد.

يحدث ذلك فقط على جهاز Android حقيقي في إصدار الإصدار.
يعمل Android Emulator (التصحيح) ، ويعمل iOS Simulator (التصحيح) والجهاز (الإصدار) أيضًا.

الجهاز: Samsung Galaxy A6
Android: 9 (فطيرة)
Flutter 1.12.13 +fix.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

ملاحظة أخرى إذا حاولت و FullScreen أثناء هذا التحميل اللانهائي ، فستحصل على خطأ معرف فيديو غير صالح = رمز الخطأ: 1

كان لي نفس القضية.
كان المثال يعمل بشكل جيد ولكن استخدام المكون الإضافي داخل مشروعي الحالي يؤدي إلى تحميل لا نهائي.

في حالتي ، كان سبب المشكلة هو webview_flutter: ^ 0.3.20 + 2

أدت إزالة هذه التبعية من pubspec الخاص بي إلى حل المشكلة

لقد وجدت مشكلتي ، حيث كان معرف الفيديو في انتظار النشر. تعيين للعرض الأول في x يوم. يقول مشغل youtube حقيقي هذا إذا حاولت تشغيل الفيديو الذي على وشك العرض الأول. ربما يجب أن تكون هذه ميزة إضافية

نفس المشكلة على iPad 3 مع iOS 9.3.5 ، ولم يساعدني أي مما سبق

يجب الإصلاح مع v7.0.0.

يجب الإصلاح مع v7.0.0.

أنا أستخدم 7.0.0+3 لكن التحميل اللانهائي قبل بدء الفيديو لا يزال يمثل مشكلة في محاكي Android

أواجه نفس مشكلة التحميل اللانهائي ، أي تحديث لهذه المشكلة؟

نفس المشكلة بالنسبة لي أيضًا على محاكي Android Pixel 2 XL. يتم تحميل الفيديو إذا رجعت إلى الإصدار 6.1.1.

الإصدار 21

أنا لا أقوم بتضمين webview_flutter.

التهيئة بسيطة إلى حد ما:

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

نفس المشكلة بالنسبة لي أيضًا على Android Pixel 3. يستمر تحميل الفيديو ، وهو يعمل بشكل مثالي على نظام التشغيل iOS.

هل هذه مشكلة مع Just Emulator ؟؟ هل جرب أي شخص على جهاز 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 سعيد أنه عمل لك.
يحتوي الرابط أدناه على القليل من المعاينة للتطبيق الذي أقوم بإنشائه لأحد عملائي ، حيث استخدمت مشغل YouTube. لذلك إذا كان لديك أي أسئلة ، فلا تتردد في إعلامي.
https://www.youtube.com/watch؟v=O3dy9p4ybes

Hardikkr سعيد أنه عمل لك.
يحتوي الرابط أدناه على القليل من المعاينة للتطبيق الذي أقوم بإنشائه لأحد عملائي ، حيث استخدمت مشغل YouTube. لذلك إذا كان لديك أي أسئلة ، فلا تتردد في إعلامي.
https://www.youtube.com/watch؟v=O3dy9p4ybes

أواجه أيضًا بعض المشكلات في تشغيل الفيديو ، حيث يتم تحميله بلا حدود وأنا أتحدث عن السبب

أيضا نفس المشكلة

أواجه نفس مشكلة التحميل اللانهائي ، إنها تعمل في محاكي ولكن الجهاز الحقيقي لا يعمل

تضمين التغريدة
في حال كان ذلك مفيدًا لك. أستطيع أن أشعر بإحباطك لول.

لذا. أحدث إصدار يعمل على عدد قليل من الهواتف ولا يعمل على الهواتف الأخرى.
أعتقد أن الأمر يتعلق بإصدار android

لقد قمت بحل هذه المشكلة عن طريق الرجوع إلى الإصدار youtube_player_flutter: ^6.1.1

image

كان لدي إذن الإنترنت فقط لبيان التصحيح. بعد إضافة إذن الإنترنت إلى البيان الرئيسي ، نجح الأمر بالنسبة لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات