智能音乐打铃系统开发:(二)软件开发

一 整体方案

采用c语言实现,多进程 架构,主进程检测子进程意外退出,退出话重启子进程 ,保证系统永远在线.完全采用web控制,可同时实现手电电脑操作,不用到机房也可以操作; 解码部分采用FFMPEG,以前有使用经验,支持的格式也多;播放部分采用ALSA,网上资料多,所选硬件平台支持;

二 WEB操作控制

为了实现操作的方便与直观性,采用WEB控制的方式,还有一点是如果用硬件键盘或屏幕操作成本肯定会高,个人开发者实现也太困难.web服务器网过网络搜索最终选择了civetweb,这个项目完全c语言开发,为嵌式应用程序所设计,和自己开发项目的语言相同,方便 集成 .web服务器实现两个功能,一是做静态文件服务器,二是做webAPI,api返回给浏览器json数据,数据呈现用js在客户端实现.对于JS自己倒不太熟悉,在边学边用中完成. 开发过程中发现如果C语言只做API服务器的话,开发web也还是比较简单的。

三 播放部分

虽然是主要功能,但缺相对是最容易的,FFMPEG解码已经用过,ALSA播放资料也多,只需要FFMPEG解码后的pcm数据丢给ALSA播放就可以了.个人开发者感觉软件简单,硬件难住太大。

四 定时部分

用一个线程检测 系统时间,到达播放时间时播放相应的音频文件就可以了.系统时钟用香橙派 zero2开发的时候,RTC模块添加后正好是RTC0,debian linux系统 也配置好了NTP服务,会自动网络对时,自动更新RTC。但更换香橙派 zero3后,系统内核版本也改变了,结果新添加的RTC模块变成了RTC1 ,RTC0是SOC自带的RTC,没有后备电池,停电不能走时。而系统好象默认用的是RTC0,这个问题有待解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值