【平头哥RVB2601创意应用开发】+webplay Demo试用及源码分析
[复制链接]
本帖最后由 symic 于 2022-3-31 23:16 编辑
进入下一个官方Demo测试,Webplayer_demo。可以播放一首基于http网络应用层协议的mp3音频文件。老样子还是首先分析一下程序代码结构。
如上图所示,主要代码还是集中在app目录下,其中app_main.c 为主函数入口,实现了板级配置board_yoc_init(),播放器初始化player_init()、命令行注册cli_reg_cmd_player(),网络事件订阅等功能。
event_subscribe(EVENT_NETMGR_GOT_IP, network_event, NULL); //订阅网络连接事件
event_subscribe(EVENT_NETMGR_NET_DISCON, network_event, NULL); //订阅网络断开事件
上述函数所绑定的回调函数network_event也在app_main中,主要通过事件ID,显示是什么网络操作,目前提供了获得IP地址和网络断开两个ID。
cli_cmd.c主要是用于对命令行的注册。可通过windows下的cmd和linux下的终端与开发板进行简单的命令通信,而所使用的命令就是使用cli_reg_XXX_ifconfig(),如cli_reg_cmd_ping();表示支持ping操作;cli_reg_cmd_ifconfig()表示显示网络参数的函数。具体如下表所示。
序号 |
命令名称 |
参数 |
备注 |
1 |
ping |
|
ping操作,用于判断是否网络连接正常。 |
2 |
ifconfig |
|
显示IP地址、MAC等网络信息 |
3 |
kv |
kv set key value
kv get key
kv setint key value
kv getint key
kv del key
|
建立key-value组合键值对。kv文件系统初始化,可用于保存网络ssid&psk |
4 |
ps |
|
显示当前进程的状态 |
5 |
free |
|
显示系统内存的使用情况 |
6 |
factory |
|
|
7 |
sysinfo |
os
app
id
reboot
|
显示操作系统版本
显示APP版本
显示设备ID
重启sys
|
在这也说明一下,可通过命令ifconfig ap ssid psk来连接wifi。
每个自定义的命令都是由一个单独的.c文件来安排。包括cli_ping()、cli_factory、cli_sysinfo.c、cli_kvtool.c。这里暂时以体验现有的功能为主,不具体分析代码实现,后续会有相关的内容
继续观察,player_demo.c是控制网络音频播放的重要源文件。同样也以对应着两个自定义可扩展命令参数player和player example.
在player_demo.h中仅有2个函数对外公布的。
int cli_reg_cmd_player(void);
player_t *get_player_demo();
get_player_demo为新建一个player_t的结构体,里面的成员_player_event回调函数。
cli_reg_cmd_player则是先得注册两个命令。player和player examples。
其中,主要使用playe命令。
player play welcom/url 可播放welcom(也可播放URL文件。)
player pause 暂停
player resume 重新进入
player stop 播放停止
player help 打印出提示。
1892397770.mp4
(1001.97 KB, 下载次数: 14)
这次先研究到这里。
|