Flutter 中用于 Web、移动和桌面应用程序的视频播放器?

Posted

技术标签:

【中文标题】Flutter 中用于 Web、移动和桌面应用程序的视频播放器?【英文标题】:Video player for web, mobile and desktop applications in Flutter? 【发布时间】:2019-10-05 23:02:54 【问题描述】:

有这个Flutter插件可以在iosandroid上播放视频(Video Plugin)

不过,我还想在我的网络和桌面应用程序中嵌入视频播放器。

所以我不明白 Flutter 是如何以这种方式支持不同平台的插件的。因为如果您看一下视频插件,它会使用 iOS 上的 AVPlayerAndroid 上的 ExoPlayer,但 Web 和桌面应用程序不支持这些。

我的问题: 为什么社区不为独立于其底层平台的视频编写 Flutter 插件?还是不可能?为什么我们必须如此依赖 Android 和 iOS,尤其是如果 Flutter 未来将越来越独立于平台?光靠 Dart 语言和 Flutter 框架就不能写出让视频在不同平台上运行的源代码吗?

目前有没有办法为网络和桌面应用程序嵌入视频播放器?

【问题讨论】:

【参考方案1】:

您可以使用dart_vlc 将视频播放添加到您的 Flutter 桌面应用程序中。

目前支持 Windows 和 Linux,我们正在积极添加 macOS 支持。

这个库也更容易使用,

Player player = Player(id: 0);
player.open(
  Playlist(
    medias: [
      Media.file(File('C:/music.mp3')),
      Media.file(File('C:/audio.mp3')),
      Media.network('https://www.example.com/music.aac'),
    ],
  ),
);

谢谢。查看项目 README 以获得更多示例和文档。

【讨论】:

【参考方案2】:

video_playervideo_player_web 插件适用于 web、android 和 ios。但我没有在桌面上测试过它们。

【讨论】:

【参考方案3】:

您可以尝试使用WebView by flutter_webview_plugin 包。它可以利用任何操作系统中的内置视频解码器/播放器,因为它们被预加载为 Web 内容。

编辑:这是因为目前还没有找到很多适用于桌面和 Web 平台的视频插件(至少在我看来)

【讨论】:

以上是关于Flutter 中用于 Web、移动和桌面应用程序的视频播放器?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 成为多平台框架,支持移动Web桌面和嵌入式设备

Flutter: 适用于移动Web嵌入式和桌面平台的便携式界面框架

如何知道我的 Flutter Web 应用程序是在移动设备还是桌面设备上运行

Flutter 1.0重磅发布,它还想做桌面和Web开发

适用于 Web 和移动设备的 Flutter 图像选择器

在 Flutter Web 和移动应用中使用 Firebase