更新记录

1.0.0(2026-03-19)

1.0.0

  • 实现DLNA Media Renderer核心功能
  • 支持接收投屏播放、暂停、停止、跳转请求
  • 支持音量控制与静音

平台兼容性

微影 DLNA 投屏接收插件

插件简介

本插件为 uni-app 提供 Android 端 DLNA Media Renderer 功能,可将设备注册为名为"微影"的 DLNA 接收端,接收其他应用的投屏请求。

功能特性

  • ✅ 启动/停止 DLNA 投屏服务
  • ✅ 自动注册设备名称为"微影"
  • ✅ 接收视频播放 URL
  • ✅ 支持播放、暂停、停止、跳转控制
  • ✅ 解析视频元数据(标题、时长等)

使用方法

1. 引入插件

const dlnaRenderer = uni.requireNativePlugin('WeiYing-DLNARenderer')

2. 启动投屏服务

dlnaRenderer.startService({}, (result) => {
    if (result.code === 0) {
        console.log('服务启动成功,设备名:', result.deviceName)
    } else {
        console.log('启动失败:', result.message)
    }
})

3. 监听投屏请求

// 监听播放请求
dlnaRenderer.onPlayRequest((data) => {
    console.log('收到播放请求:', data.url)
    console.log('视频元数据:', data.metadata)
})

// 监听暂停请求
dlnaRenderer.onPauseRequest((data) => {
    console.log('收到暂停请求')
})

// 监听停止请求
dlnaRenderer.onStopRequest((data) => {
    console.log('收到停止请求')
})

// 监听跳转请求
dlnaRenderer.onSeekRequest((data) => {
    console.log('收到跳转请求:', data.position)
})

// 监听错误
dlnaRenderer.onError((data) => {
    console.log('错误:', data.message)
})

4. 停止投屏服务

dlnaRenderer.stopService((result) => {
    console.log('服务已停止')
})

5. 检查服务状态

dlnaRenderer.isRunning((result) => {
    console.log('服务运行状态:', result.running)
})

API 文档

方法

方法名 参数 回调数据 说明
startService {} {code, message, deviceName} 启动投屏服务
stopService - {code, message} 停止投屏服务
isRunning - {code, running, deviceName} 检查服务状态
getDeviceName - {code, deviceName} 获取设备名称
onPlayRequest callback {type, url, metadata} 监听播放请求
onPauseRequest callback {type} 监听暂停请求
onStopRequest callback {type} 监听停止请求
onSeekRequest callback {type, position} 监听跳转请求
onError callback {type, message} 监听错误
removeAllListeners - - 移除所有监听器

注意事项

  1. 使用前请确保设备已连接 WiFi
  2. 需要获取 WiFi 和网络状态权限
  3. iOS 端需要单独开发 AirPlay Receiver(需苹果开发者账号)
  4. 本插件为 UTS 插件,同时兼容 uni-app 和 uni-app x

支持的视频格式

  • MP4, MPEG, AVI, MKV, MOV, WMV, 3GP, WebM
  • HLS (m3u8)
  • 音频: MP3, M4A, AAC

版本历史

v1.0.0

  • 初始版本
  • 实现 DLNA Media Renderer 核心功能
  • 支持基本的播放控制
  • 转换为 UTS 插件格式

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.INTERNET, android.permission.ACCESS_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.WAKE_LOCK

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据,仅在本地局域网内通过Cling库处理DLNA投屏相关的媒体控制指令(如播放URL、暂停指令),所有数据均在设备本地流转,不会将任何用户数据、设备信息或投屏内容发送至外部服务器;插件使用的Cling库(UPnP/DLNA协议栈)无数据采集行为,仅用于局域网内设备发现和指令交互。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。