MissingPluginException(在初始化通道 better_player_channel 上找不到方法的实现)

Cha*_*eng 3 android-video-player flutter flutter-video-player

即使我从 better_player 文档复制了示例,我仍然收到以下错误。我确保我的 Android 目标是 31,kotlin 是 1.5+,并且启用了互联网权限。这是我的颤动版本:

\n

\xe2\x9e\x9c drm_player git:(main) \xe2\x9c\x97 flutter --version

\n

Flutter 2.8.1 \xe2\x80\xa2 通道稳定 \xe2\x80\xa2 https://github.com/flutter/flutter.git \n框架 \xe2\x80\xa2 修订版 77d935af4d(6 周前) \xe2\x80 \xa2 2021-12-16 08:37:33 -0800\n引擎 \xe2\x80\xa2 修订版 890a5fca2e\n工具 \xe2\x80\xa2 Dart 2.15.1

\n

这是我正在努力解决的代码:

\n
import \'package:better_player/better_player.dart\';\nimport \'package:drm_player/constants.dart\';\nimport \'package:flutter/material.dart\';\n\nclass WidevinePlayer extends StatefulWidget {\n  const WidevinePlayer({Key? key}) : super(key: key);\n\n  @override\n  _WidevinePlayerState createState() => _WidevinePlayerState();\n}\n\nclass _WidevinePlayerState extends State<WidevinePlayer> {\n  late BetterPlayerController _widevineController;\n\n  @override\n  void initState() {\n    setUpWidvineController();\n    super.initState();\n  }\n\n  void setUpWidvineController() async {\n    BetterPlayerConfiguration betterPlayerConfig =\n        const BetterPlayerConfiguration(aspectRatio: 16 / 9, fit: BoxFit.contain);\n\n    _widevineController = BetterPlayerController(betterPlayerConfig);\n\n    BetterPlayerDataSource widevineDataSource = BetterPlayerDataSource(\n        BetterPlayerDataSourceType.network, kWidevineVideoUrl,\n        drmConfiguration: BetterPlayerDrmConfiguration(\n            drmType: BetterPlayerDrmType.widevine,\n            licenseUrl: kLicenseUrl,)\n    );\n\n    _widevineController.setupDataSource(widevineDataSource);\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text("Widevine Player"),\n      ),\n      body: SingleChildScrollView(\n        child: Column(\n          children: [\n            AspectRatio(\n              aspectRatio: 16 / 9,\n              child: BetterPlayer(\n                controller: _widevineController,\n              ),\n            ),\n          ],\n        ),\n      ),\n    );\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的错误:

\n
E/flutter ( 9272): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method init on channel better_player_channel)\nE/flutter ( 9272): #0      MethodChannel._invokeMethod\npackage:flutter/\xe2\x80\xa6/services/platform_channel.dart:165\nE/flutter ( 9272): <asynchronous suspension>\nE/flutter ( 9272):\nE/flutter ( 9272): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: MissingPluginException(No implementation found for method create on channel better_player_channel)\nE/flutter ( 9272): #0      MethodChannel._invokeMethod\npackage:flutter/\xe2\x80\xa6/services/platform_channel.dart:165\nE/flutter ( 9272): <asynchronous suspension>\nE/flutter ( 9272): #1      MethodChannelVideoPlayer.create\npackage:better_player/\xe2\x80\xa6/video_player/method_channel_video_player.dart:37\nE/flutter ( 9272): <asynchronous suspension>\nE/flutter ( 9272): #2      VideoPlayerController._create\npackage:better_player/\xe2\x80\xa6/video_player/video_player.dart:202\nE/flutter ( 9272): <asynchronous suspension>\nE/flutter ( 9272):\nI/flutter ( 9272): GetDataFromUrl failed: SocketException: HTTP connection timed out after 0:00:05.000000, host: dash.akamaized.net, port: 443\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

这是因为您将 better_player 添加到 yaml 中,并且没有重新编译应用程序并将其重新安装到设备上