推荐一款开源局域网 TV 投屏助手:DLNA m3u8 + 浏览器 Network 检测
2026/9/6 3:20:01 网站建设 项目流程

做局域网投屏的时候,我常遇到两类麻烦:电视在同一 Wi-Fi 里,但手机找不到;网页里明明有 HLS 流,却要把 m3u8 从开发者工具里抠出来再手动填。

TV 投屏助手把这两步收进同一个 App:扫描局域网电视,用 DLNA 把 m3u8 推过去,同时带一个内嵌浏览器,Network 面板可以直接点选检测到的 m3u8。目前是v1.0.9,包名com.tvcastassistant.app,Android 和 iOS 各有一份工程。

Android 安装包:v1.0.9,文件名 TVCastAssistant-v1.0.9-release.apk。安装包发在本账号的 CSDN 下载频道,搜索「TV 投屏助手」即可。

源码工程名tv-cast-assistant,目录是 Androidapp/与 iOSios/

它适合谁

  • 想在同一 Wi-Fi 下把 HLS / m3u8 投到支持 DLNA 的电视(小米电视等常见机型)
  • 需要看网页请求、从页面里捞 m3u8,又不想开完整抓包环境
  • 要对照 Android / iOS 两边实现(Kotlin + Jetpack Compose,Swift + SwiftUI)
  • 准备上国内应用商店,需要一份不含 VPN、不含系统抓包的投屏工具

它不是万能投屏盒,也不替代专业播放器。定位很明确:局域网发现 + DLNA 投 m3u8 + 浏览检测 + 扫码填地址

四个页签

应用底部是四个入口,和日常使用顺序一致。

1. 投屏:发现电视,推 m3u8

手机和电视连同一 Wi-Fi 后,扫描局域网设备。发现走 SSDP / UPnP,再读设备描述 XML,用厂商、型号、FriendlyName 等关键词标出电视。

选中设备后可以:

  • 填网络 m3u8 地址
  • 选本地.m3u8文件(同目录 ts 分片会由内置 HTTP 服务暴露给电视)
  • 发送 DLNASetAVTransportURI+Play

前提是电视打开了 DLNA / 无线投屏,并且能播 HLS。本地列表里的分片需要和播放列表在同一目录。

2. 网络:看本机和网段

「网络」页展示本机 IP、网段和设备列表,可做快速扫描或更深一点的探测,并把可投屏设备标成 DLNA。排查「为什么扫不到电视」时,先看这一页往往比反复点投屏更有效。

3. 浏览:内嵌浏览器 + Network 识别 m3u8

内嵌浏览器打开网页后,Network 面板会记录请求。可以过滤「仅 m3u8」,点一条记录即可选中并投屏。iOS 侧用 WKWebView,能力和 Android 对齐。

对开发者来说,这相当于把「看 Network、复制 HLS、再切到投屏页粘贴」收成一次操作。请求记录只留在本机,不会上传。

4. 扫一扫:二维码填投屏地址

相机扫码后把内容填进投屏地址,少一次手打长 URL。也可以用来识别屏幕上的二维码。权限按需申请:扫码要相机,选本地文件才碰存储。

应用内还有微信赞赏码,方便支持开发。

为什么说适合上架小米应用商店

国内商店对 VPN、系统级抓包比较敏感。当前版本已经去掉 VPN 抓包相关能力,投屏和扫描都限制在同一 Wi-Fi 的 DLNA / UPnP 路径上。

隐私面上也比较克制:不注册、不接广告 SDK、不采集通讯录和精确位置。相机和存储都是用户主动操作才用。

Android 要求 7.0+(API 24)。构建:

./gradlew assembleDebug

iOS 在ios/,需要 Mac + Xcode,系统要求 iOS 16.0+,真机才能验证局域网投屏。Windows 环境编不出 IPA。

实现要点(方便对照源码)

能力做法
设备发现SSDP M-SEARCH,再解析 UPnP 设备描述
电视识别Manufacturer / Model / FriendlyName 关键词
投屏DLNA AVTransport
本地 m3u8本机 HTTP 服务把播放列表和 ts 分片提供给电视
网页流WebView / WKWebView 拦截请求,识别 m3u8
扫码相机 + 条码识别,结果回填地址

仓库结构大致是app/(Android)和ios/(Xcode 工程)。签名模板是keystore.properties.example,真正的 keystore 和local.properties不要提交。

使用时注意

  1. 手机和电视必须同一局域网,访客 Wi-Fi / AP 隔离会直接扫不到。
  2. 电视要打开 DLNA;只开投屏镜像、不支持 HLS 的设备,地址推过去也不会播。
  3. 只投你有权播放的内容。应用本身不做片源聚合。
  4. iOS 第一次使用要允许「本地网络」,扫码要允许相机。

小结

如果你需要的是「扫到电视 → 投 m3u8 → 必要时从网页 Network 里点一条流」,这个开源项目比再搭一套 SSDP + DLNA + WebView 拦截要省事。Android 可直接编,iOS 源码也在同一仓库里。欢迎对照源码改电视识别规则,或按自己的局域网环境做二次开发。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询