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

Flutter中video_player插件无法播放RTSP流如何解决?

仅使用video_player播放RTSP流的实现方案

首先明确:video_player本身并未内置RTSP解码支持,需通过配置其底层依赖的原生播放器扩展来实现,因为该插件是基于Android的ExoPlayer和iOS的AVPlayer封装的。

Android 平台配置

video_player在Android端依赖ExoPlayer,而ExoPlayer默认不支持RTSP,需添加官方的RTSP扩展:

  1. 打开项目的android/app/build.gradle文件,在dependencies块中添加ExoPlayer的RTSP扩展依赖:
dependencies {
    // 保留原有依赖,新增如下内容
    implementation "com.google.android.exoplayer:exoplayer-rtsp:2.X.X"
}

注意:将2.X.X替换为当前video_player依赖的ExoPlayer版本(可查看video_player的android/build.gradle文件确认版本号)。
2. 确认项目已申请INTERNET权限(AndroidManifest.xml中默认已配置,但需确保未被移除),同时检查RTSP流地址格式正确(如rtsp://192.168.1.100:554/stream)。

iOS 平台配置

iOS端video_player依赖AVPlayer,仅iOS 14及以上版本的AVPlayer支持RTSP流,配置步骤:

  1. 修改ios/Podfile,将部署目标设置为iOS 14.0或更高:
platform :ios, '14.0'
  1. 在ios/Runner/Info.plist中添加网络权限配置,允许加载非HTTPS资源:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>
  1. 确保RTSP流符合标准规范,AVPlayer对RTSP的支持有限,仅兼容基础RTP传输的流。

异常排查

  • 先使用VLC等第三方播放器测试RTSP流地址,确认流本身可正常播放。
  • 检查设备网络是否能访问RTSP服务器,排除防火墙、端口限制等问题。
  • Android端若添加扩展后仍报错,需确认ExoPlayer扩展版本与video_player依赖的ExoPlayer版本完全一致,版本不匹配会引发兼容性问题。

提示:即便完成上述配置,video_player对RTSP的支持稳定性仍不如专门的流媒体插件,但如果必须仅使用该插件,上述配置是唯一可行的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:10:32