You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows平台Flutter WebRTC开发遇插件及编译问题求助

解决Flutter Windows平台WebRTC录制流的MissingPluginException及编译问题

问题背景

在Windows平台使用Flutter开发WebRTC客户端时,录制流触发以下异常:

MissingPluginException (MissingPluginException(No implementation found for method startRecordToFile on channel FlutterWebRTC.Method))

已尝试的操作

  • 执行DartPluginRegistrant.ensureInitialized();注册插件,无效
  • 执行插件升级命令,问题依旧:
flutter pub outdated
flutter pub upgrade --major-versions
  • 尝试回退插件旧版本,编译失败,执行以下命令:
flutter pub cache repair
flutter pub get
flutter build windows
  • 尝试flutter pub cache clean,执行flutter clean时提示:
PS C:\Users\santi\dev\IKUZAIN\fwrtc_win> flutter clean        
Failed to remove build. A program may still be using a file in the directory or the directory itself. To find and stop such a program, see:
https://superuser.com/questions/1333118/cant-delete-empty-folder-because-it-is-used
Deleting build...                                                  201ms
Deleting .dart_tool...                                               7ms
Deleting Generated.xcconfig...                                       1ms
Deleting flutter_export_environment.sh...                            0ms
Deleting ephemeral...                                               21ms
Deleting .flutter-plugins-dependencies...                            0ms
Deleting .flutter-plugins...                                         1ms
  • 重启电脑后,执行flutter build windows仍失败,错误信息:
PS C:\Users\santi\dev\IKUZAIN\fwrtc_win> flutter build windows

 Building with sound null safety 

/C:/sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_webrtc-0.8.12/lib/src/native/rtc_video_renderer_impl.dart(11,7): error G76B49859: The non-abstract 
class 'RTCVideoRenderer' is missing implementations for these members: [C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\flutter\flutter_assemble.vcxproj]  
/C:/sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_webrtc-0.8.12/lib/src/media_recorder.dart(18,8): error GE5CFE876: The method 'MediaRecorder.startWeb' has fewer named arguments than those of overridden method 'MediaRecorder.startWeb'. [C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\flutter\flutter_assemble.vcxproj]
/C:/sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_webrtc-0.8.12/lib/src/native/media_recorder_impl.dart(30,8): error GE5CFE876: The method 'MediaRecorderNative.startWeb' has fewer named arguments than those of overridden method 'MediaRecorder.startWeb'. [C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\flutter\flutter_assemble.vcxproj]
/C:/sdk/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_webrtc-0.8.12/lib/src/native/media_stream_impl.dart(103,15): error G0A556F40: The return type of the method 'MediaStreamNative.clone' is 'MediaStream', which does not match the return type, 'Future<MediaStream>', of the overridden method, 'MediaStream.clone'. [C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\flutter\flutter_assemble.vcxproj]
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(247,5): error MSB8066: Compilaci�n personalizada de "C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\CMakeFiles\7e012dc9275095dffd41e5dc17eebab0\flutter_windows.dll.rule;C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\CMakeFiles\e7e364d593aab9909a7dd61f45347876\flutter_assemble.rule" terminada con el c�digo 1. [C:\Users\santi\dev\IKUZAIN\fwrtc_win\build\windows\flutter\flutter_assemble.vcxproj]
Building Windows application...                                          
Build process failed.
  • flutter doctor -v检测无异常:
[✓] Flutter (Channel stable, 3.3.3, on Microsoft Windows [Versi¢n 10.0.19044.2251], locale es-ES)
    • Flutter version 3.3.3 on channel stable at C:\sdk\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18a827f393 (8 weeks ago), 2022-09-28 10:03:14 -0700
    • Engine revision 5c984c26eb
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at C:\Users\santi\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.4.1)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33110.190
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[✓] VS Code (version 1.73.1)
    • VS Code at C:\Users\santi\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.52.0

[✓] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Versi¢n 10.0.19044.2251]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 107.0.5304.108
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 107.0.1418.56

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

解决思路

  1. 修复插件版本兼容性
    当前编译错误显示flutter_webrtc:0.8.12与Flutter 3.3.3存在API不兼容问题(抽象方法未实现、参数/返回值不匹配)。需找到与当前Flutter版本兼容的插件版本,在pubspec.yaml中指定后执行flutter pub get。可参考插件官方CHANGELOG锁定合适版本,例如尝试0.9.x系列的稳定版。

  2. 彻底清理缓存与构建文件

    • 手动删除build目录(结束Visual Studio、Flutter相关后台进程后操作,避免文件占用)
    • 删除.pub-cache中flutter_webrtc相关文件夹,再执行flutter pub get重新拉取依赖
  3. 检查Windows平台插件注册
    确认windows/runner/main.cpp中是否正确注册WebRTC插件,需包含FlutterWebRTCPluginRegisterWithRegistrar相关代码,若缺失参考插件官方文档手动添加注册逻辑。

  4. 验证录制API的平台支持
    确认startRecordToFile方法是否被flutter_webrtc的Windows版本支持,部分WebRTC录制功能可能仅覆盖移动端/web。若不支持,需更换为Windows平台兼容的录制实现,或通过原生代码扩展录制能力。

内容的提问来源于stack exchange,提问作者Santi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:45:49