导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. vejoker
    V
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 878
    • 主题 9
    • 帖子 17
    • 最佳 4
    • 群组 0

    vejokerLV 4

    @vejoker

    878
    积分
    5
    声望
    4
    资料浏览
    17
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    vejoker 取消关注 关注

    vejoker 发布的最佳帖子

    • 回复: 分享QT中引入tplayer,未能渲染到weight中,有没有大佬能改写源码能在QT中使用

      【已解决:可以显示渲染到屏幕中】

      自己挖的坑还得自己解决😢

      按照以上步骤配置好环境,引入该有的库文件

      在main.cpp中,设置以下内容

      #include "mainwindow.h"
      
      #include <QApplication>
      
      #include <QDebug>
      #include <tplayer.h>
      #include "User/tpmanager.h"
      #include <QLabel>
      
      int main(int argc, char *argv[])
      {
          QApplication a(argc, argv);
          MainWindow w;
      
          //可以注释掉这个MainWindow w窗体,使它不可见。或者给他透明度,我这里给的是透明度
          w.setWindowOpacity(0.5);//这句不起作用,冗余代码
          w.show();
      
          //绘制内容在tplayer视频上
          QLabel* label = new QLabel();
          label->setText("hello");
          label->setStyleSheet("font-size:20px;color:#ff0000");
          label->move(400,460);
          label->show();
      
      
          qInfo() << "hello" ;
      
      
          TPlayer* tplayer = TPlayerCreate(CEDARX_PLAYER);
          TPlayerSetNotifyCallback(tplayer,myCallback,NULL);
          TPlayerSetDisplayRect(tplayer,0,0,800,640);//设置位置大小
          if(TPlayerSetDataSource(tplayer,"http://192.168.0.123:9999/explorer?path=upload%2F2025-03%2F4.mp4",NULL) != 0)
          {
              printf("TPlayerSetDataSource() return fail.\n");
          }
          else
          {
              printf("TPlayerSetDataSource() end\n");
          }
          if(TPlayerPrepare(tplayer)!= 0)
          {
              printf("TPlayerPrepare return fail.\n");
          }else{
              printf("TPlayerPrepare end\n");
          }
          if(TPlayerStart(tplayer) != 0)
          {
              printf("TPlayerStart() return fail.\n");
          }else{
              printf("started.\n");
          }
      
      
          return a.exec();
      }
      
      

      效果图片:
      捕获.JPG

      发布在 GUI
      V
      vejoker
    • wifimanager的is_ap_connected显示有误

      1743660387471.png
      上图,获取到ip的,也能联网。但是通过官方wifimanager的示例wifi_get_connection_info_test显示disconnected的状态
      1743660639842.png
      上面是源码

      请教大佬,如何获取wifi正确有效的连接状态?

      发布在 Linux
      V
      vejoker
    • T133-S3芯片,XR829wifi蓝牙芯片,蓝牙传输数据大小问题

      XR829芯片有蓝牙传输大小限制吗? client 写请求回调中,数据超过20个字节就无法接收了。
      捕获.JPG

      发布在 Wireless & Analog Series
      V
      vejoker
    • 回复: QT时钟程序报不能加载.so库

      @huanian 大佬,请问您的qtenv.sh脚本内容是什么。我也遇到相关qt程序开机自启不能加载so库的情况。

      发布在 MR Series
      V
      vejoker

    vejoker 发布的最新帖子

    • 回复: 分享QT中引入tplayer,未能渲染到weight中,有没有大佬能改写源码能在QT中使用

      补充

      使用ui布局文件,设置背景透明度

      setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
      this->setAttribute(Qt::WA_TranslucentBackground, true);
      

      097019bf-5843-4004-9069-ece94db21c01-1748942469337.png

      发布在 GUI
      V
      vejoker
    • 【经验分享】T113 使用GUI-Guider生成代码设计lvgl

      1、设计页面

      捕获.JPG
      随便绘制些东西,版本选的是LVGLv8.3.5,版本GUI-Guider-1.6.1-GA
      2acebf8f-2fa4-4785-9b33-eb8c9b54356b-1748920318999.png
      ce53bfd0-ba44-4d67-9aa8-21c101ce4db2-1748920391487.jpg
      导出代码,选择 工程->工程导出 ,重要的是custom和generated文件夹

      2、文件配置

      下载对应的lvgl,https://github.com/lvgl/lvgl ,切换对应分支
      下载对应的lvgl驱动,https://github.com/lvgl/lv_drivers ,切换对应分支
      806e524a-ea61-4efb-bad0-43e6a04b6726-1748920648497.png
      下载的lvgl-8.3.5重命名为lvgl
      下载的lv_drivers-release-v8.3重命名为lv_drivers
      创建ui文件夹,将custom和generated文件夹放进去
      3b4b9be5-55f4-444e-b4f3-712759c9fe66-1748920779915.png
      还有 从lvgl中复制lv_conf_template.h 到 当前目录,并重命名为 lv_conf.h 、 从lv_drivers 中复制 lv_drv_conf_template.h 到 当前目录,并重命名为 lv_drv_conf.h
      剩下的main.c和Makefile从lv_port_linux_frame_buffer 来的,
      lv_port_linux_frame_buffer 下载 https://github.com/lvgl/lv_port_linux_frame_buffer.git
      从lv_port_linux_frame_buffer 中复制 main.c 和 Makefile 到 当前目录 下

      3、代码配置

      修改lv_conf.h 文件
      使能lv_conf.h 头文件,将#if 0修改为#if 1
      修改LV_COLOR_DEPTH为32
      修改LV_MEM_SIZE 为(1024U * 1024U)
      修改LV_USE_LOG、LV_LOG_PRINTF 为1
      修改LV_FONT_MONTSERRAT_12、14、16、24 为1

      修改lv_drv_conf.h 文件
      使能修改lv_drv_conf.h 头文件,将#if 0修改为#if 1
      使能LCD显示:使能USE_FBDEV,路径设置为/dev/fb0
      设置触摸,设置USE_EVDEV为1,根据实际情况设置EVDEV_NAME

      修改main.c文件
      头文件添加 #include "ui/generated/gui_guider.h"
      头文件添加 #include "ui/generated/events_init.h"
      屏蔽cursor for the mouse
      修改显示屏的宽高,否则花屏,显示不全
      配置启用文件
      4245967a-0422-4bc2-a128-ac1d73b11c7f-1748921438074.png
      8230f025-919e-40bb-a7f5-e152434a41f2-1748921371546.png

      修改makefile
      修改CC = arm-openwrt-linux-gcc ,改为你自己的编译器
      修改BIN = lvgl_demo ,名字随便起
      增加.mk依赖,include $(LVGL_DIR)/lv_drivers/lv_drivers.mk等,看图
      屏蔽CSRCS +=$(LVGL_DIR)/mouse_cursor_icon.c
      978f42d8-8ea6-4137-9e80-61b65f8bdeb5-1748921528168.png

      4、编译

      在当前目录 直接执行make
      运行正常就会生成可执行文件
      将lvgl_demo 可执行文件放入开发板
      通过U盘方式或ADB
      运行./lvgl_demo &

      5、遇到的问题

      提示找不到lvgl.h,
      8e8f531e-c591-431f-96da-fc6fed693c8e-1748921842925.png

      处理方法一

      找到代码位置,改为../../lvgl.h同lvgl/lvgl.h
      c5a140b6-68e0-4762-ac4b-ede355e0e24e-1748921916109.png
      这里只是其中一个示例,ui文件夹下的其他引用了lvlg.h文件的都会报这个错,通过上面的方法处理

      处理方法二

      在Mainfile中写入

      CFLAGS += -I$(LVGL_DIR_NAME)/
      CFLAGS += -I$(LVGL_DIR)/ui/generated
      CFLAGS += -I$(LVGL_DIR)/ui/custom
      

      93a9b29d-3a90-4942-85f8-aca79d6399b6-1748941630463.png

      发布在 GUI
      V
      vejoker
    • DragonSN工具必须使用安全固件才可以烧号吗?

      DragonSN工具必须使用安全固件才可以烧号吗?

      使用的T113-S3芯片,我看手册写的烧录安全固件后无法再烧录非安全固件?

      发布在 编译和烧写问题专区
      V
      vejoker
    • wifimanager的is_ap_connected显示有误

      1743660387471.png
      上图,获取到ip的,也能联网。但是通过官方wifimanager的示例wifi_get_connection_info_test显示disconnected的状态
      1743660639842.png
      上面是源码

      请教大佬,如何获取wifi正确有效的连接状态?

      发布在 Linux
      V
      vejoker
    • 回复: 分享QT中引入tplayer,未能渲染到weight中,有没有大佬能改写源码能在QT中使用

      【已解决:可以显示渲染到屏幕中】

      自己挖的坑还得自己解决😢

      按照以上步骤配置好环境,引入该有的库文件

      在main.cpp中,设置以下内容

      #include "mainwindow.h"
      
      #include <QApplication>
      
      #include <QDebug>
      #include <tplayer.h>
      #include "User/tpmanager.h"
      #include <QLabel>
      
      int main(int argc, char *argv[])
      {
          QApplication a(argc, argv);
          MainWindow w;
      
          //可以注释掉这个MainWindow w窗体,使它不可见。或者给他透明度,我这里给的是透明度
          w.setWindowOpacity(0.5);//这句不起作用,冗余代码
          w.show();
      
          //绘制内容在tplayer视频上
          QLabel* label = new QLabel();
          label->setText("hello");
          label->setStyleSheet("font-size:20px;color:#ff0000");
          label->move(400,460);
          label->show();
      
      
          qInfo() << "hello" ;
      
      
          TPlayer* tplayer = TPlayerCreate(CEDARX_PLAYER);
          TPlayerSetNotifyCallback(tplayer,myCallback,NULL);
          TPlayerSetDisplayRect(tplayer,0,0,800,640);//设置位置大小
          if(TPlayerSetDataSource(tplayer,"http://192.168.0.123:9999/explorer?path=upload%2F2025-03%2F4.mp4",NULL) != 0)
          {
              printf("TPlayerSetDataSource() return fail.\n");
          }
          else
          {
              printf("TPlayerSetDataSource() end\n");
          }
          if(TPlayerPrepare(tplayer)!= 0)
          {
              printf("TPlayerPrepare return fail.\n");
          }else{
              printf("TPlayerPrepare end\n");
          }
          if(TPlayerStart(tplayer) != 0)
          {
              printf("TPlayerStart() return fail.\n");
          }else{
              printf("started.\n");
          }
      
      
          return a.exec();
      }
      
      

      效果图片:
      捕获.JPG

      发布在 GUI
      V
      vejoker
    • QT交叉编译加入openssl报错

      捕获.JPG
      捕获.JPG

      #!/bin/sh
      
      ./configure \
      -prefix /home/foot/qt/arm-T113-openssl \
      -release \
      -opensource \
      -confirm-license \
      -shared \
      -xplatform linux-arm-gnueabi-g++ \
      -optimized-qmake \
      -pch \
      -qt-sqlite \
      -qt-libjpeg \
      -qt-libpng \
      -qt-zlib \
      -no-opengl \
      -skip qt3d \
      -skip qtcanvas3d \
      -skip qtpurchasing \
      -skip qtlocation \
      -skip qttools \
      -no-sse2 \
      -no-openssl \
      -openssl-linked OPENSSL_INCDIR='/home/foot/Tina-SDK/out/t113-bingpi_m2/compile_dir/target/openssl-1.1.0i/ipkg-install/usr/include/openssl' OPENSSL_LIBDIR='/home/foot/Tina-SDK/out/t113-bingpi_m2/compile_dir/target/openssl-1.1.0i/ipkg-install/usr/lib' OPENSSL_LIBS='-lssl -lcrypto' \
      -no-cups \
      -no-glib \
      -dbus-runtime \
      -no-xcb \
      -no-iconv \
      -no-separate-debug-info \
      -no-fontconfig \
      -recheck-all \
      -make examples \
      -I/home/foot/Tina-SDK/out/t113-bingpi_m2/staging_dir/target/usr/include/ \
      -I/home/foot/Tina-SDK/out/t113-bingpi_m2/staging_dir/target/usr/include/allwinner/ \
      -I/home/foot/Tina-SDK/out/t113-bingpi_m2/staging_dir/target/usr/include/allwinner/include/ \
      -I/home/foot/Tina-SDK/out/t113-bingpi_m2/compile_dir/target/openssl-1.1.0i/ipkg-install/usr/include/openssl \
      -L/home/foot/Tina-SDK/out/t113-bingpi_m2/compile_dir/target/openssl-1.1.0i/ipkg-install/usr/lib \
      -L/home/foot/Tina-SDK/out/t113-bingpi_m2/staging_dir/target/usr/lib/
      
      #make -j2
      #make install
      

      Qt版本:5.12.9
      openssl版本:openssl-1.1.0i

      请教一下大佬们,怎么解决

      发布在 GUI
      V
      vejoker
    • T133-S3芯片,XR829wifi蓝牙芯片,蓝牙传输数据大小问题

      XR829芯片有蓝牙传输大小限制吗? client 写请求回调中,数据超过20个字节就无法接收了。
      捕获.JPG

      发布在 Wireless & Analog Series
      V
      vejoker
    • 回复: /etc/init.d/中配置自启动,自启动报错缺少动态库,终端执行却没问题

      @emonyr 改source后,没问题了,感谢!

      发布在 T Series
      V
      vejoker
    • 分享QT中引入tplayer,未能渲染到weight中,有没有大佬能改写源码能在QT中使用

      捕获.JPG
      这是引入库部分,注释掉的是我写的用不上的,其中crypto需要在sdk中全局查找拷贝来的

      foot@foot-VirtualBox:~/qtFile/videoDemo/videoDemo$ tree
      .
      ├── main.cpp
      ├── mainwindow.cpp
      ├── mainwindow.h
      ├── mainwindow.ui
      ├── tpmanager
      │   ├── crypto1.1
      │   │   ├── libcrypto.a
      │   │   ├── libcrypto.so -> libcrypto.so.1.1
      │   │   ├── libcrypto.so.1.1
      │   │   ├── libssl.a
      │   │   ├── libssl.so -> libssl.so.1.1
      │   │   └── libssl.so.1.1
      │   ├── include
      │   │   ├── cdx_config.h
      │   │   ├── CdxKeyedVector.h
      │   │   ├── libcedarc
      │   │   │   └── include
      │   │   │       ├── cdc_config.h
      │   │   │       ├── memoryAdapter.h
      │   │   │       ├── sc_interface.h
      │   │   │       ├── sdecoder.h
      │   │   │       ├── typedef.h
      │   │   │       ├── vbasetype.h
      │   │   │       ├── vdecoder.h
      │   │   │       ├── veAdapter.h
      │   │   │       ├── veInterface.h
      │   │   │       └── vencoder.h
      │   │   ├── libcedarx
      │   │   │   ├── base
      │   │   │   │   └── include
      │   │   │   │       ├── AwMessageQueue.h
      │   │   │   │       ├── AwPool.h
      │   │   │   │       ├── CdxAtomic.h
      │   │   │   │       ├── CdxBase64.h
      │   │   │   │       ├── CdxBinary.h
      │   │   │   │       ├── CdxBitReader.h
      │   │   │   │       ├── CdxBuffer.h
      │   │   │   │       ├── CdxDebug.h
      │   │   │   │       ├── CdxEnumCommon.h
      │   │   │   │       ├── CdxISOLang.h
      │   │   │   │       ├── CdxKeyedVector.h
      │   │   │   │       ├── CdxList.h
      │   │   │   │       ├── CdxList.i
      │   │   │   │       ├── CdxLock.h
      │   │   │   │       ├── cdx_log.h
      │   │   │   │       ├── CdxMemory.h
      │   │   │   │       ├── CdxMessage.h
      │   │   │   │       ├── CdxMeta.h
      │   │   │   │       ├── CdxQueue.h
      │   │   │   │       ├── CdxSocketUtil.h
      │   │   │   │       ├── CdxStrUtil.h
      │   │   │   │       ├── CdxSysinfo.h
      │   │   │   │       ├── CdxTime.h
      │   │   │   │       ├── CdxTypes.h
      │   │   │   │       ├── CdxUrl.h
      │   │   │   │       └── SmartDnsService.h
      │   │   │   ├── external
      │   │   │   │   └── include
      │   │   │   │       ├── adecoder
      │   │   │   │       │   └── adecoder.h
      │   │   │   │       ├── aencoder
      │   │   │   │       │   └── aencoder.h
      │   │   │   │       └── sdecoder
      │   │   │   │           └── sdecoder.h
      │   │   │   ├── parser
      │   │   │   │   └── include
      │   │   │   │       ├── awPlayReadyLicense.h
      │   │   │   │       └── CdxParser.h
      │   │   │   ├── playback
      │   │   │   │   └── include
      │   │   │   │       ├── deinterlace.h
      │   │   │   │       ├── layerControl.h
      │   │   │   │       ├── player.h
      │   │   │   │       ├── soundControl.h
      │   │   │   │       └── subtitleControl.h
      │   │   │   └── stream
      │   │   │       └── include
      │   │   │           ├── AwRtpStream.h
      │   │   │           ├── CdxSeqBuffer.h
      │   │   │           ├── CdxStreamErrno.h
      │   │   │           └── CdxStream.h
      │   │   ├── PostProcessCom.h
      │   │   ├── tplayer.h
      │   │   ├── videoOutPort.h
      │   │   └── xplayer
      │   │       └── include
      │   │           ├── mediaInfo.h
      │   │           ├── xplayer.h
      │   │           └── xplayerUtil.h
      │   ├── jpegdecode
      │   │   └── libjpegdecode.so
      │   ├── lib
      │   │   ├── libadecoder.so
      │   │   ├── libasound.so -> libasound.so.2.0.0
      │   │   ├── libasound.so.2 -> libasound.so.2.0.0
      │   │   ├── libasound.so.2.0.0
      │   │   ├── libawrecorder.so
      │   │   ├── libcdx_playback.so
      │   │   ├── libcrypto.so -> libcrypto.so.1.0.0
      │   │   ├── libcrypto.so.1.0.0
      │   │   ├── libscaledown.so
      │   │   ├── libsubdecoder.so
      │   │   ├── libuapi.so
      │   │   ├── libvenc_common.so
      │   │   ├── libvenc_h264.so
      │   │   ├── libvenc_h265.so
      │   │   ├── libvenc_jpeg.so
      │   │   ├── libVE.so
      │   │   ├── libvideoengine.so
      │   │   ├── libxplayer.so
      │   │   ├── libz.a
      │   │   ├── libz.so -> libz.so.1.2.8
      │   │   ├── libz.so.1 -> libz.so.1.2.8
      │   │   └── libz.so.1.2.8
      │   ├── libcedarc
      │   │   └── lib
      │   │       ├── libaftertreatment.la
      │   │       ├── libaftertreatment.so
      │   │       ├── libcdc_base.la
      │   │       ├── libcdc_base.so
      │   │       ├── libfbm.la
      │   │       ├── libfbm.so
      │   │       ├── libMemAdapter.la
      │   │       ├── libMemAdapter.so
      │   │       ├── libOmxCore.la
      │   │       ├── libOmxCore.so
      │   │       ├── libOmxVdec.la
      │   │       ├── libOmxVdec.so
      │   │       ├── libOmxVenc.la
      │   │       ├── libOmxVenc.so
      │   │       ├── libsbm.la
      │   │       ├── libsbm.so
      │   │       ├── libvdecoder.la
      │   │       ├── libvdecoder.so
      │   │       ├── libvenc_base.la
      │   │       ├── libvenc_base.so
      │   │       ├── libvencoder.la
      │   │       └── libvencoder.so
      │   ├── libcedarx
      │   │   └── lib
      │   │       ├── libcdx_base.la
      │   │       ├── libcdx_base.so
      │   │       ├── libcdx_common.la
      │   │       ├── libcdx_common.so
      │   │       ├── libcdx_parser.la
      │   │       ├── libcdx_parser.so
      │   │       ├── libcdx_stream.la
      │   │       └── libcdx_stream.so
      │   ├── tmetadataretriever
      │   │   └── libtmetadataretriever.so
      │   ├── tplayer
      │   │   └── libtplayer.so
      │   └── trecorder
      │       └── libtrecorder.so
      ├── User
      │   ├── tpmanager.cpp
      │   └── tpmanager.h
      ├── videoDemo.pro
      └── videoDemo.pro.user
      

      文件结构树部分就是整个demo项目的结构,我是将package->allwinner->tina_multimedia的部分内容拷贝到项目中,其中User文件夹是参考tplayerdemo.c的CallbackForTPlayer写的。

      最后mainwindow.cpp写的内容是

      MainWindow::MainWindow(QWidget *parent)
          : QMainWindow(parent)
          , ui(new Ui::MainWindow)
      {
          ui->setupUi(this);
      
          TPlayer* tplayer = TPlayerCreate(CEDARX_PLAYER);
          TPlayerSetNotifyCallback(tplayer,myCallback,NULL);
          if(TPlayerSetDataSource(tplayer,"http://192.168.0.123:9999/explorer?path=upload%2F2025-03%2F4.mp4",NULL) != 0)
          {
              printf("TPlayerSetDataSource() return fail.\n");
          }
          else
          {
              printf("TPlayerSetDataSource() end\n");
          }
          if(TPlayerPrepare(tplayer)!= 0)
          {
              printf("TPlayerPrepare return fail.\n");
          }else{
              printf("TPlayerPrepare end\n");
          }
          if(TPlayerStart(tplayer) != 0)
          {
              printf("TPlayerStart() return fail.\n");
          }else{
              printf("started.\n");
          }
      
          qInfo() << "video is create now" ;
      }
      
      //最简单的一个tplayer播放流程
      

      总结,折腾几天,发现tplayer没有提供视频数据帧的方法,想着能通过tplayer来实现在qt中播放视频,但是源码是开源的,应该能实现在qt中播放,我不会改。如果我说的有什么错误或者不妥之处,还请大佬指正。

      发布在 GUI
      V
      vejoker
    • 回复: /etc/init.d/中配置自启动,自启动报错缺少动态库,终端执行却没问题

      @qidarei
      是不一致

      捕获.JPG

      终端输入

      捕获.JPG

      启动脚本

      捕获.JPG
      捕获.JPG

      为什么我新增了一个qtenv.sh脚本也是还是无法定义环境?请教一下我是哪里写的不对?

      发布在 T Series
      V
      vejoker