• 春雷视频添加投屏功能解惑


    春雷视频是用uniapp开发的,所以要添加应用投屏功能真是比较麻烦,乐播是个大厂,提供专业的投屏功能,但是没有提供JS库的SDK
    所以只好找好用的JS库,uniapp插件市场有Dlan投屏,折腾了一天,还是不满意,把调试过程分享出来,技术交流反馈。

    uniapp市场插件地址:纯JS的android DLNA SSDP ,实现简单的投屏控制功能,安卓可用!

    https://ext.dcloud.net.cn/plugin?id=7621icon-default.png?t=M5H6https://ext.dcloud.net.cn/plugin?id=7621

    本机调试问题还是有的,春雷视频投屏功能暂时还不加。

    先看找到的两个设备吧,场景是创维电视,打开电视,默认能搜索到一个设备,客厅电视

    然后打开西瓜视频,电视上西瓜视频叫 鲜时光

    看看获取到设备的信息吧

     

    经过代码调试,选择投屏设备鲜时光,能播放,反而投屏到客厅电视不能播放,如果同好需要xml数据,直接复制即可:

    1. {
    2. "ip": "192.168.1.2",
    3. "port": "1078",
    4. "name": "客厅电视-DLNA",
    5. "urlBase": "http://192.168.1.2:1078",
    6. "AVTransport": {
    7. "serviceType": "urn:schemas-upnp-org:service:AVTransport:1",
    8. "serviceId": "urn:upnp-org:serviceId:AVTransport",
    9. "SCPDURL": "/AVTransport/bcec23b7471b-dmr/scpd.xml",
    10. "controlURL": "/AVTransport/bcec23b7471b-dmr/control.xml",
    11. "eventSubURL": "/AVTransport/bcec23b7471b-dmr/event.xml"
    12. },
    13. "RenderingControl": {
    14. "serviceType": "urn:schemas-upnp-org:service:RenderingControl:1",
    15. "serviceId": "urn:upnp-org:serviceId:RenderingControl",
    16. "SCPDURL": "/RenderingControl/bcec23b7471b-dmr/scpd.xml",
    17. "controlURL": "/RenderingControl/bcec23b7471b-dmr/control.xml",
    18. "eventSubURL": "/RenderingControl/bcec23b7471b-dmr/event.xml"
    19. },
    20. "ConnectionManager": {
    21. "serviceType": "urn:schemas-upnp-org:service:ConnectionManager:1",
    22. "serviceId": "urn:upnp-org:serviceId:ConnectionManager",
    23. "SCPDURL": "/ConnectionManager/bcec23b7471b-dmr/scpd.xml",
    24. "controlURL": "/ConnectionManager/bcec23b7471b-dmr/control.xml",
    25. "eventSubURL": "/ConnectionManager/bcec23b7471b-dmr/event.xml"
    26. }
    27. }

    1. {
    2. "ip": "192.168.1.2",
    3. "port": "49152",
    4. "name": "鲜时光",
    5. "urlBase": "http://192.168.1.2:49152",
    6. "AVTransport": {
    7. "serviceType": "urn:schemas-upnp-org:service:AVTransport:1",
    8. "serviceId": "urn:upnp-org:serviceId:AVTransport",
    9. "SCPDURL": "_urn:schemas-upnp-org:service:AVTransport_scpd.xml",
    10. "controlURL": "_urn:schemas-upnp-org:service:AVTransport_control",
    11. "eventSubURL": "_urn:schemas-upnp-org:service:AVTransport_event"
    12. },
    13. "RenderingControl": {
    14. "serviceType": "urn:schemas-upnp-org:service:RenderingControl:1",
    15. "serviceId": "urn:upnp-org:serviceId:RenderingControl",
    16. "SCPDURL": "_urn:schemas-upnp-org:service:RenderingControl_scpd.xml",
    17. "controlURL": "_urn:schemas-upnp-org:service:RenderingControl_control",
    18. "eventSubURL": "_urn:schemas-upnp-org:service:RenderingControl_event"
    19. },
    20. "ConnectionManager": {
    21. "serviceType": "urn:schemas-upnp-org:service:ConnectionManager:1",
    22. "serviceId": "urn:upnp-org:serviceId:ConnectionManager",
    23. "SCPDURL": "_urn:schemas-upnp-org:service:ConnectionManager_scpd.xml",
    24. "controlURL": "_urn:schemas-upnp-org:service:ConnectionManager_control",
    25. "eventSubURL": "_urn:schemas-upnp-org:service:ConnectionManager_event"
    26. }
    27. }

     为什么鲜时光能播放,我才鲜时光是完全根据Dlan协议吧,明显的不一样,客厅电视没有urlBase字段,下面的json是我手动根据ip和port拼接的,实际还是不行,因为还有一个字段明显不一致。

    即:controlURL 字段,这个字段是我们想设备投屏发送的地址,即 urlBase+controlURL=投屏服务端地址。

    测试发送数据如图:

     

     再把自定参数xml数据发一下:

    1. <?xml version="1.0"?>
    2. <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    3. <s:Body>
    4. <u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
    5. <InstanceID>0</InstanceID>
    6. <CurrentURI>https://wolongzywcdn2.com:65/20220503/WkPKUlBV/index.m3u8</CurrentURI>
    7. <CurrentURIMetaData></CurrentURIMetaData>
    8. </u:SetAVTransportURI>
    9. </s:Body>
    10. </s:Envelope>

    响应数据虽然不报错,但是客厅电视没有投屏成功,鲜时光可以投屏成功,看看返回信息

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <s:Envelope
    3. s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    4. <s:Body>
    5. <u:SetAVTransportURIResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"/></s:Body>
    6. </s:Envelope>

    这样的话,这个Dlan投屏库还是不能用于生产app,所以以失败而告终,后续还需要找更优质的JS库来调试,目前市面上好用JS投屏库不好找,谁有更好的投屏库直接留言反馈。

    ******应用介绍资料******
    app名称:春雷视频,
    简介:苹果cmsV10后台,接口基于swoole驱动的MixPHP3,支持大并发!
    uniapp开源地址:
    https://ext.dcloud.net.cn/plugin?id=8476
    服务端部署文档:
    https://note.youdao.com/s/BRx3aOYs

    视频解析管方直链,秒开

    apk安装包地址:点击下载春雷视频免费观看影视,还可以下载源码技术交流icon-default.png?t=M5H6https://vkceyugu.cdn.bspapp.com/VKCEYUGU-2d2fcc4e-5090-4341-8830-a249cf2ac80f/477d7417-56f7-42a5-b6b8-df2a1bac2d2b.apk

    开源技术交流群:495654168
    技术支持:20365052
    ******应用介绍资料******

  • 相关阅读:
    【echarts】14、echarts+vue2 - 柱状图pictorialBar
    MacOS环境变量source生效但重启后又失效
    数据结构学习笔记——前、中、后缀表达式的转换(栈的应用)
    白杨SEO:做个世界杯公众号怎么样?以2022年卡塔尔世界杯来做微信搜一搜的SEO流量实战举例
    【Matplotlib绘制图像大全】(二十二):Matplotlib绘制气泡图
    Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战
    几个可以整蛊你朋友的Python程序
    Nvidia GPU 入门教程之 02 ubuntu 安装A100显卡驱动 (含8步快速浓缩教程)
    Python 小贴士(1)
    P1551 亲戚(并查集)
  • 原文地址:https://blog.csdn.net/heimicms/article/details/125567483