打印
[技术讨论]

百问网全志D1h开发板投屏功能实现

[复制链接]
419|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
神棍地海棠|  楼主 | 2024-6-27 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
投屏功能实现
[size=15.008px]D1系列号称点屏神器,不仅能点屏,还能用于投屏。
参考 [color=var(--tertiary)]哪吒D1编译配置DLNA客户端进行B站投屏 6
,实现了投屏功能。
源码准备
[size=15.008px]百问网为 【百问网D1h开发板】提供了投屏功能需要使用的源码,直接git下载即可:
git [color=var(--hljs-builtin-name)]clone https://github.com/DongshanPI/DongshannezhaSTU_DLNA_ScreenProjection.git
[size=15.008px]下载后的源码目录如下:
[size=15.008px]其中:
  • libupnp是UPNP协议的一个轻量实现库。它最早由英特尔开发并开源,是目前Linux平台最流行的UPNP实现库,其官网为:[color=var(--tertiary)]http://pupnp.sourceforge.net/
    [color=var(--primary-medium)][backcolor=var(--primary-low)]1
    ,集成了HTTP处理、XML处理、HTTP服务器、线程池等功能。
  • tprender是用于实际投屏处理的应用
源码编译
[size=15.008px]源码分为两部分进行编译,先编译libupnp得到动态调用库,再编译tprender。
  • libupnp编译
[color=var(--hljs-builtin-name)]export TOOLCHAIN_ROOT=~/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702[color=var(--hljs-builtin-name)]export PATH=[color=var(--hljs-attribute)]$TOOLCHAIN_ROOT/bin:[color=var(--hljs-attribute)]$PATH[color=var(--hljs-builtin-name)]cd DongshannezhaSTU_DLNA_ScreenProjection/libupnp-1.14.12./configure --host=riscv64-unknown-linux-gnumake [color=var(--hljs-builtin-name)]mkdir tmpmake install DESTDIR=$([color=var(--hljs-builtin-name)]pwd)/tmp/[color=var(--hljs-builtin-name)]ls -lh tmp/usr/local/lib
[size=15.008px]编译安装后的结果如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17142286407230[color=var(--secondary-high)]1728×512 156 KB


  • tprender编译
[color=var(--hljs-builtin-name)]cd DongshannezhaSTU_DLNA_ScreenProjection/tprender[color=var(--hljs-comment)]# 设置正确的目录perl -pi -e [color=var(--hljs-string)]'s#/home/book/tina-d1-h#/root/tina-d1-h#g' $(grep -rn /home/book/tina-d1-h * | [color=var(--hljs-builtin-name)]cut -d [color=var(--hljs-string)]':' -f 1 | [color=var(--hljs-builtin-name)]uniq)perl -pi -e [color=var(--hljs-string)]'s#/home/book/Allwinner/tprender#'$([color=var(--hljs-builtin-name)]pwd)[color=var(--hljs-string)]'#g' $(grep -rn /home/book/Allwinner/tprender * | [color=var(--hljs-builtin-name)]cut -d [color=var(--hljs-string)]':' -f 1 | [color=var(--hljs-builtin-name)]uniq)perl -pi -e [color=var(--hljs-string)]'s#\\/home\\/book\\/Allwinner\\/tprender#'$([color=var(--hljs-builtin-name)]pwd | sed -e [color=var(--hljs-string)]'s#/#\\\\/#g')[color=var(--hljs-string)]'#g' tags[color=var(--hljs-builtin-name)]rm -rf CMakeFiles cmake_install.cmake  CMakeCache.txt tags[color=var(--hljs-comment)]# 拷贝动态调用库[color=var(--hljs-builtin-name)]cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so[color=var(--hljs-builtin-name)]cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so.11[color=var(--hljs-builtin-name)]cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so[color=var(--hljs-builtin-name)]cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so.17cmake .make
[size=15.008px]需要注意,上面使用perl进行文件内路径替换的操作,需要根据你的实际的文件路径进行处理。
[size=15.008px]编译结果如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17142288226073[color=var(--secondary-high)]1468×390 168 KB


[size=15.008px]现在tprender已经准备好了,下面就进行开发板上的操作了。
投屏测试
[size=15.008px]首先,使用adb或者网络,将tprender上传到开发板:
adb push tprender /root/adb push libs /root/
[size=15.008px]然后,到开发板上进行操作,先进行联网:
wifi_connect_ap_test WiFi名称 WiFi密码udhcpc -i wlan0ip addr show wlan0
[size=15.008px]结果要正确显示获取到了IP:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17142289999964[color=var(--secondary-high)]1036×326 100 KB


[size=15.008px]此时,应在其他电脑上,ping上面的IP,确保可以联通。
[size=15.008px]再开启tprender提供投屏功能:
[color=var(--hljs-builtin-name)]cd /root[color=var(--hljs-builtin-name)]chmod u+x tprender./tprender
[size=15.008px]执行后,输出如下:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17142291403827[color=var(--secondary-high)]1434×902 229 KB


[size=15.008px]从上面的输出可以看到,成功启动,等待投屏。
[size=15.008px]此时,打开手机或者支持投屏播放的电脑,播放一个视频,然后投屏小图标,就能找到 D1-H 投屏设备了:
[size=15.008px][color=var(--tertiary)][color=var(--secondary)]17142294515999[color=var(--secondary-high)]1080×2340 52.8 KB


[size=15.008px]点击D1-H,就能在 【百问网D1h开发板】 的屏幕上播放了。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

290

帖子

1

粉丝