dlna

概述

DLNA模块实现了局域网LAN下使用WIFI连接的智能设备实现投屏功能, 本模块支持各大主流电视盒子(小米,华为,乐视,移动魔百盒等), 可以播放,暂停,快进退,调音量,退出。(有些盒子不支持:电信IPTV盒子等,未收集完全)

iOS使用本插件说明

苹果手机升级到ios14.5系统后,使用GCDAsyncUdpSocke发送组播消息的时候提示“Error Domain=NSPOSIXErrorDomain Code=65 "No route to host" UserInfo=...”

1.向苹果申请组播权限

2.申请成功后在开发者账号中,对appid进行编辑,拉倒最下面会多一个Additional Capabilities的选项,将 Multicast Networking 打

3.然后在entitlements配置文件中添加com.apple.developer.networking.multicast的布尔值为yes,参考论坛

模块接口

startSearch

搜索设备

startSearch(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true
    evenType : 'onStarted',//返回类型:
            //开始搜索 onStarted
            //搜索到设备 onDeviceListChanged
            //搜索完成 onFinished
    data : [{
        xh : 0,      //序号
        name : ''    //设备名称
    }]
}

示例代码

var obj = api.require('dlna');
obj.startSearch(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

stopSearch

停止搜索

stopSearch(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true
}

示例代码

var obj = api.require('dlna');
obj.stopSearch(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

addEventListener

投屏事件监听

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true
    evenType : 'onPreparing',//准备成功 onPreparing
               //播放 onPlay
               //暂停 onPause
               //停止 onStop
               //跳转完成 onSeekComplete
               //当前音量 onVolumeChanged
               //媒体总时长 onGetMediaDuration
               //播放进度 onProgressUpdated
}

示例代码

var obj = api.require('dlna');
obj.addEventListener(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

startDLNA

开始投屏

startDLNA({params}, callback(ret, err))

params

xh:

  • 类型:数字型
  • 描述:(必填项)设备序号(扫描设备返回结果序号)。

url:

  • 类型:字符串型
  • 描述:(必填项)需要播放视频的视频地址(仅支持http协议的mp4类型视频,请开发者自行控制传入值)。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.startDLNA({
    xh : 0,
    url : 'http://7xue4m.com1.z0.glb.clouddn.com/apicloud/39f7c87f9167f08607e1cef4e48a2e05.mp4'
}, function(ret, err) {
    alert(JSON.stringify(ret)+" "+JSON.stringify(err));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

stopDLNA

退出投屏

stopDLNA(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.stopDLNA(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

pause

暂停播放

pause(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.pause(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

resume

开始播放

resume(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.resume(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

getDuration

获取视频总时长

getDuration(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.getDuration(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

getPosition

获取播放视频时长

getPosition(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.getPosition(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

seek

设置进度

seek({params}, callback(ret, err))

params

process:

  • 类型:数字型
  • 描述:(必填项)需要跳转的进度值(单位是秒)。
  • 默认值:0

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.seek({
    process : 22,
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

volume

设置音量

volume({params}, callback(ret, err))

params

volume:

  • 类型:数字型
  • 描述:(必填项)设置视频音量(0-100)。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.volume({
    volume : 20
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

playUrl

切换视频地址

playUrl({params}, callback(ret, err))

params

url:

  • 类型:字符串型
  • 描述:(必填项)需要播放视频的视频地址(仅支持http协议的mp4类型视频,请开发者自行控制传入值)。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status : true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg:""
}

示例代码

var obj = api.require('dlna');
obj.playUrl({
    url : 'http://7o50kb.com2.z0.glb.qiniucdn.com/c6.mp4'
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的2.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2