前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >百问网全志D1h开发板投屏功能实现

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

作者头像
阿志小管家
发布2024-06-29 08:15:47
490
发布2024-06-29 08:15:47
举报

投屏功能实现

D1系列号称点屏神器,不仅能点屏,还能用于投屏。

源码准备

百问网为 【百问网D1h开发板】提供了投屏功能需要使用的源码,直接git下载即可:

代码语言:javascript
复制
git clone https://github.com/DongshanPI/DongshannezhaSTU_DLNA_ScreenProjection.git

下载后的源码目录如下:

其中:

  • libupnp是UPNP协议的一个轻量实现库。它最早由英特尔开发并开源,是目前Linux平台最流行的UPNP实现库,其集成了HTTP处理、XML处理、HTTP服务器、线程池等功能。
  • tprender是用于实际投屏处理的应用

源码编译

源码分为两部分进行编译,先编译libupnp得到动态调用库,再编译tprender。

  1. libupnp编译
代码语言:javascript
复制
export TOOLCHAIN_ROOT=~/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702
export PATH=$TOOLCHAIN_ROOT/bin:$PATH

cd DongshannezhaSTU_DLNA_ScreenProjection/libupnp-1.14.12
./configure --host=riscv64-unknown-linux-gnu

make 
mkdir tmp
make install DESTDIR=$(pwd)/tmp/

ls -lh tmp/usr/local/lib

编译安装后的结果如下:

  1. tprender编译
代码语言:javascript
复制
cd DongshannezhaSTU_DLNA_ScreenProjection/tprender

# 设置正确的目录
perl -pi -e 's#/home/book/tina-d1-h#/root/tina-d1-h#g' $(grep -rn /home/book/tina-d1-h * | cut -d ':' -f 1 | uniq)
perl -pi -e 's#/home/book/Allwinner/tprender#'$(pwd)'#g' $(grep -rn /home/book/Allwinner/tprender * | cut -d ':' -f 1 | uniq)
perl -pi -e 's#\\/home\\/book\\/Allwinner\\/tprender#'$(pwd | sed -e 's#/#\\\\/#g')'#g' tags
rm -rf CMakeFiles cmake_install.cmake  CMakeCache.txt tags

# 拷贝动态调用库
cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so
cp ../libupnp-1.14.12/tmp/usr/local/lib/libixml.so.11.1.2 libs/libixml.so.11
cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so
cp ../libupnp-1.14.12/tmp/usr/local/lib/libupnp.so.17.1.3 libs/libupnp.so.17

cmake .
make

需要注意,上面使用perl进行文件内路径替换的操作,需要根据你的实际的文件路径进行处理。

编译结果如下:

现在tprender已经准备好了,下面就进行开发板上的操作了。

投屏测试

首先,使用adb或者网络,将tprender上传到开发板:

代码语言:javascript
复制
adb push tprender /root/
adb push libs /root/

然后,到开发板上进行操作,先进行联网:

代码语言:javascript
复制
wifi_connect_ap_test WiFi名称 WiFi密码
udhcpc -i wlan0
ip addr show wlan0

结果要正确显示获取到了IP:

此时,应在其他电脑上,ping上面的IP,确保可以联通。

再开启tprender提供投屏功能:

代码语言:javascript
复制
cd /root
chmod u+x tprender
./tprender

执行后,输出如下:

从上面的输出可以看到,成功启动,等待投屏。

此时,打开手机或者支持投屏播放的电脑,播放一个视频,然后投屏小图标,就能找到 D1-H 投屏设备了:

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 投屏功能实现
    • 源码准备
      • 源码编译
        • 投屏测试
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档