Youtube_player_flutter: [Android] 首次打开视频时无限加载

创建于 2020-07-17  ·  5评论  ·  资料来源: sarbagyastha/youtube_player_flutter

描述错误
如果视频第一次打开,加载指示器会无限旋转。 “不支持的配置文件 2”等错误仅在第一次显示播放器时发生。

重现

  1. 在 android 7 上打开颤振应用程序。
  2. 打开视频屏幕。 指标加载。 视频未播放。
  3. 关闭视频屏幕。
  4. 打开同一个屏幕。 视频加载和播放。

预期行为
每次都应该播放视频。

技术细节:

  • 设备和操作系统:电视盒:Android 7.1.2
  • 版本 7.0.0+7

颤振医生:

[√] Flutter (Channel stable, v1.17.3, on Microsoft Windows [Version 10.0.18363.959], locale uk-UA)
[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.0)
[√] Android Studio(4.0版)
[!] IntelliJ IDEA 社区版(2018.3 版)
X Flutter 插件未安装; 这增加了 Flutter 特定的功能。
X Dart 插件未安装; 这增加了 Dart 特定的功能。
[√] 已连接设备(1 个可用)

第一次初始化播放器时的输出:

I/art (29950):做部分代码缓存收集,代码=24KB,数据=29KB
I/art (29950):代码缓存收集后,代码=20KB,数据=27KB
I/art (29950):将代码缓存容量增加到 128KB
W/cr_AwContents(29950):onDetachedFromWindow 在已经分离时调用。 忽略
I/cr_Ime (29950):ImeThread 未启用。
E/libEGL (29950): validate_display :99错误 3008 (EGL_BAD_DISPLAY)
W/VideoCapabilities(29950):视频/mp4v-es 的配置文件/级别 1/32 无法识别
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 2
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 8
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 16
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 的配置文件 32 不受支持
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 64
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持配置文件 128
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 256
W/VideoCapabilities(29950):视频/mpeg2 的配置文件/级别 0/0 无法识别
W/VideoCapabilities(29950):视频/mpeg2 的配置文件/级别 0/2 无法识别
W/VideoCapabilities(29950):视频/mpeg2 的配置文件/级别 0/3 无法识别
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 2 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 2 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 2 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 2 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 3 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 3 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 3 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 3 不受支持
I/VideoCapabilities(29950):视频/mpeg2 不支持配置文件 4
I/VideoCapabilities(29950):视频/mpeg2 不支持配置文件 4
I/VideoCapabilities(29950):视频/mpeg2 不支持配置文件 4
I/VideoCapabilities(29950):视频/mpeg2 不支持配置文件 4
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 5 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 5 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 5 不受支持
I/VideoCapabilities(29950):视频/mpeg2 的配置文件 5 不受支持
W/VideoCapabilities(29950):不支持的 mime 视频/vc1
W/Utils (29950): 无法解析远程 '1-'
W/VideoCapabilities(29950):不支持的 mime 视频/wvc1
W/Utils (29950): 无法解析远程 '1-'
W/VideoCapabilities(29950):不支持的 mime 视频/wmv3
W/VideoCapabilities(29950):不支持的 mime 视频/x-ms-wmv
W/VideoCapabilities(29950):不支持的 mime 视频/mjpeg
W/AudioCapabilities(29950):不支持的 mime 音频/aac-adif
W/AudioCapabilities(29950):不支持的 mime 音频/aac-latm
W/AudioCapabilities(29950):不支持的 mime 音频/广告
W/AudioCapabilities(29950):不支持的 mime 音频/wma
W/AudioCapabilities(29950):不支持的 mime 音频/wmapro
W/AudioCapabilities(29950):不支持的 mime 音频/truehd
W/AudioCapabilities(29950):不支持的 mime 音频/ffmpeg
W/AudioCapabilities(29950):不支持的 mime 音频/ac3
W/AudioCapabilities(29950):不支持的 mime 音频/eac3
W/AudioCapabilities(29950):不支持的 mime 音频/dtshd
W/AudioCapabilities(29950):不支持的 mime 音频/mpeg-L2
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 16
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 32
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 的级别 64 无法识别
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 128
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 256
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 512
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 1024
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 2048
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 4096
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 8192
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 16384
W/VideoCapabilities(29950):视频/x-vnd.on2.vp8 无法识别级别 32768
W/VideoCapabilities(29950):不支持的 mime 视频/x-vnd.on2.vp6
W/VideoCapabilities(29950):不支持的 mime 视频/x-vnd.on2.vp6a
W/VideoCapabilities(29950):不支持的 mime 视频/x-vnd.on2.vp6f
W/VideoCapabilities(29950):不支持的 mime 视频/rm10
W/VideoCapabilities(29950):不支持的 mime 视频/rm20
W/VideoCapabilities(29950):不支持的 mime 视频/rm40
W/VideoCapabilities(29950):不支持的 mime 视频/wmv2
W/VideoCapabilities(29950):不支持的 mime 视频/wmv1
I/VideoCapabilities(29950):视频/mp4v-es 不支持的配置文件 4
W/cr_BindingManager(29950):无法调用 deniedVisibility() - 从未看到 pid 的连接:29950

代码:

class PlayerViewState extends ErrorHandlerState<PlayerView> {
  YoutubePlayerController _youtubeController;

  <strong i="7">@override</strong>
  void initState() {
    super.initState();
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
    _youtubeController = YoutubePlayerController(initialVideoId: "t99KH0TR-J4");
    _youtubeController.addListener(() {
      print(_youtubeController.value.playerState);
    });
  }

  <strong i="8">@override</strong>
  void dispose() {
    _youtubeController.dispose();
    super.dispose();
  }

  <strong i="9">@override</strong>
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: AppColors.black,
      body: Center(
        child: YoutubePlayer(
          controller: _youtubeController,
          onReady: (){

          },
        ),
      ),
    );
  }
}
bug youtube_player_flutter

最有用的评论

同样的问题,youtube_player_flutter: ^7.0.0+7, Android 6.0.1

如何解决?

所有5条评论

如果那里存在相同的问题,您可以使用示例应用程序进行测试吗?

问题是这种情况并非总是发生在所有情况下。 我尝试了示例应用程序。 试图杀死应用程序并再次打开。 似乎示例应用程序运行良好。
比我将我的代码复制到示例应用程序中。 替换了您的“_MyHomePageState createState() => _MyHomePageState();” 到“PlayerViewState createState() => PlayerViewState();”
只是为了检查它是否取决于我的应用程序及其库。 结果与我的应用程序中的结果相同。 在示例应用程序被杀死几次后,再次打开它时 - 无限加载器。 似乎问题出在 android 7 电视盒上运行的下一个代码中。

示例应用更改代码:

/// Homepage
class MyHomePage extends StatefulWidget {
  <strong i="10">@override</strong>
  PlayerViewState createState() => PlayerViewState();
}

class PlayerViewState extends State<MyHomePage> {
  YoutubePlayerController _youtubeController;

  <strong i="11">@override</strong>
  void initState() {
    super.initState();
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
    _youtubeController = YoutubePlayerController(initialVideoId: "t99KH0TR-J4");
    _youtubeController.addListener(() {
      print(_youtubeController.value.playerState);
    });
  }

  <strong i="12">@override</strong>
  void dispose() {
    _youtubeController.dispose();
    super.dispose();
  }

  <strong i="13">@override</strong>
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: YoutubePlayer(
          controller: _youtubeController,
        ),
      ),
    );
  }
}

我在我的 android 7.1 智能手机上也面临同样的问题

同样的问题,API 22 (Samsung J5),只在第一次出现。

W/ResourceType(14933): 获取 0x01080946 (t=7 e=2374) 的条目失败(错误 -75)
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
D/ConnectivityManager(14933):请求网络; CallingUid : 10147, CallingPid : 14933
D/ConnectivityManager.CallbackHandler(14933):CM 回调处理程序得到消息 524290
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
I/art (14933):拒绝重新初始化先前失败的类 java.lang.Class
D/Activity(14933): registerForContextMenu 和 mFeatureContextMenuListener
W/cr_media(14933):需要蓝牙权限
D/PhoneWindow(14933): FMB installDecor mIsFloating:假
D/PhoneWindow(14933): FMB installDecor 标志:-2139028216
D/PhoneWindow(14933): FMB isFloatingMenuEnabled mFloatingMenuBtn:空
D/PhoneWindow(14933): FMB isFloatingMenuEnabled 返回 false
E/libEGL (14933): validate_display :255错误 3008 (EGL_BAD_DISPLAY)
W/AudioCapabilities(14933):不​​支持的 mime 音频/mpeg-L1
W/AudioCapabilities(14933):不​​支持的 mime 音频/mpeg-L2
W/AudioCapabilities(14933):不​​支持的 mime 音频/x-ms-wma
W/AudioCapabilities(14933):不​​支持的 mime 音频/x-ima
W/VideoCapabilities(14933):视频/mp4v-es 的配置文件/级别 32768/2 无法识别
W/VideoCapabilities(14933):视频/mp4v-es 的配置文件/级别 32768/2 无法识别
W/VideoCapabilities(14933):不​​支持的 mime 视频/wvc1
W/VideoCapabilities(14933):不​​支持的 mime 视频/x-ms-wmv
W/VideoCapabilities(14933):不​​支持的 mime 视频/x-ms-wmv7
W/VideoCapabilities(14933):不​​支持的 mime 视频/x-ms-wmv8
W/VideoCapabilities(14933):不​​支持的 mime 视频/mp43
I/VideoCapabilities(14933):视频/mp4v-es 的配置文件 4 不受支持
I/VideoCapabilities(14933):视频/mp4v-es 的配置文件 4 不受支持
W/VideoCapabilities(14933):不​​支持的 mime 视频/sorenson
W/cr_MediaCodecUtil(14933):视频/avc 的硬件编码器在此设备上不可用。
E/chromium(14933): [ ERROR:gl_surface_egl.cc (292)] eglChooseConfig 失败,错误 EGL_BAD_ATTRIBUTE

同样的问题,youtube_player_flutter: ^7.0.0+7, Android 6.0.1

如何解决?

此页面是否有帮助?
0 / 5 - 0 等级