PC接受手機投影軟件是为了方便用户把自己喜欢的影视投影到电脑上的一款軟件,这款軟件使用起来非常的方便,具体的使用方法在下方,軟件绿色安全,喜欢的小伙伴来欧普下载吧!
更新日志:
1:修复b站不能观看的问题,其实就是请求里面添加refer,但是因为是IP地址,所以我整了个配置文件,如果还不能看,就手动改一下配置文件。关闭軟件重新打开就好了。@Thexxx,改好了,不过下载器你自己配置吧,找个支持http下载的可以配置refer的,我就不找了,嘿嘿。。。。
2:增加52pojie鏈接。
3:修改文件名称,原来的太随意了,修改为Dlna_media_player. 修改DLNA设备名称为Dlna_media_player。
4: 应要求给程序增加一个图标。
5: 本来想做下载列表的,看了看 太难了,毕竟刚学习C#两天。。。我把下载程序改成配置文件配置,这样大家可以定制下载程序。
6:開啓DLNA按鈕也換了個圖標。好看一點。嘿嘿。。。。
代碼邏輯:
1:在PC端开启该軟件,伪装成Media Renderer,往239.255.255.250发ddsp包,注冊成为AVTransport。
2:在手机端启动xxx客户端,反正不局限于某客户端,只要支持TV投影即可。 点击投影按钮,进行DLNA查询。
3:发现AVTransport设备,手机端作为controller发协议查询设备能力,并且在SetAVTransportURI 命令中,发送m3u8信息。 也就是说其实不管在网页端如何加密,最后这里都会发送一个可用的m3u8的地址过来。
4:该軟件得到m3u8信息后,请用户选择是播放还是下载。
5:播放采用的是ffmpeg解碼器進行解碼播放。
其實總體思路並不難,這裏記錄一下遇到的坑:
1:爲了保證Upnp的兼容性,基本上市面上的開源庫都找了一遍,python的,java的,C++的,最後選用的是Platinum的開源庫,接口比較豐富,而且兼容性較好,實際測試基本上開啓後馬上就可以被手機端識別到設備。
2:FFMpeg的集成,遇到很多很多兼容性的问题,.net framework 和.net core的冲突,sdl效率问题等等,真是郁闷至极,最后没办法,现学的C#,用的是Unosquare.FFME,这个库的好处是定制灵活,对外暴露的接口较多,集成方便,后续可以扩展。
使用教程
基本上運行界面如下圖:
正常可以用于本地播放,如果想啓用DLNA,也就是接受投屏功能,請點擊下圖紅色部分按鈕,點擊後應該啥反應都沒有。就是啥反應都沒有,你不放心可以再點一遍,其實後台起了個線程去注冊AVTransport了。
然后开启您的手机,进入投屏界面,应该可以搜索到Platinum Media Renderer这个投屏设备,如果没有,检查PC防火墙等设置。(一般来说,能看到其他投影设备就应该能看到这个,除非防火墙挡住了)

点击投屏,正常情况下应该会出现这个界面。说明軟件捕获到m3u8地址,这时需要尽快选择到底是播放还是下载,两者选一个。我用的是阻塞线程,如果超过3分钟以上,URL有可能失效。
