一、原本的計劃
當初想實現音樂相冊,是基于以下考慮:
該開發板具備硬件解碼JPEG的能力,正好方便實現相冊功能;
該開發板具備音頻播放接口,只需要外接一個喇叭就可以實現音樂播放功能了;
LVGL本身有動畫函數,可以用來實現類似溶解、百葉窗之類的效果;
該開發板具備網絡接口,只需要在板子上實現一個簡單的Web服務器,就可以實現圖片文件的上傳和替換。
二、SD卡讀寫所遇到的問題
首先從Gitee網站上下載了HMI-Board的SDK,看了一下其中的例子,覺得Video示例和我所要實現的功能最接近。直接用Keil編譯了Video示例,先嘗試燒寫了Video示例,結果發現SD卡不能使用,程序無法從SD卡讀出視頻文件,出現如下錯誤:
[W/SDIO] host doesn't support card's voltages!
[E/SDIO] init SDIO card failed
剛開始懷疑SD卡有問題,不過換了多張SD卡之后發現問題依舊。由于從SD卡加載圖片是實現相冊功能的基礎,這個問題不解決就無法繼續,項目一度陷入困境。
后來決定下載RT-Thread Studio,不使用網上的SDK,而是直接用RT-Thread Studio內建的Video模板工程,這次編譯下載后程序居然可以正常運行,視頻的運行效果也算是流暢。
終于在8月底解決了SD卡的問題,當然就如前面說的9月份沒有能夠抽時間完成最初的設想,非常遺憾。
三、Video示例的分析
HMI-Board的SDK是一個用于播放AVI視頻的例子,它有很多限制:比如視頻格式必須是MJPG,因為該開發板只提供了硬件解碼JPEG的能力,而MJPG實際上就是多個JPEG組成的視頻序列;音頻只支持PCM(實際上是s16le格式),這個格式板子的音頻直接支持的,無需解碼。
廠商推薦使用格式工廠來進行所需要的AVI文件格式轉換(背后是ffmpeg完成的編碼),且編碼設置如下面兩個圖所示。
我們嘗試過使用其他編碼軟件,采用和格式工廠相同的音視頻設置,但是板子上解碼失敗,可能是編碼軟件使用了開發板不支持的編碼格式。
Video例子沒有啥容錯,一旦發現無法解碼就會停止運行。有網友在微信群里面反應Video例子運行一半就不能顯示視頻了,估計也是視頻中包括了開發板不支持的編碼。
要修改Video示例實現相冊的功能主要包括以下工作:
修改hmi-board-videoboardlvgldemovideolv_demo_video.c文件的file_explorer_event_cb函數,實現將目錄中的jpg和wav文件讀入;
修改hmi-board-videoboardportsaviplayerplayer.c中的player_entry函數,該函數完成實際的文件讀入和顯示。
-
編碼器
+關注
關注
45文章
3667瀏覽量
135237 -
SD卡
+關注
關注
2文章
566瀏覽量
64108 -
Web服務器
+關注
關注
0文章
138瀏覽量
24486 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40386 -
LVGL
+關注
關注
1文章
91瀏覽量
3082
發布評論請先 登錄
相關推薦
顛覆格局 盤點12種不成功的智能硬件
LabVIEW挑戰賽正式開賽,臺北總決賽等著你!
【DIGILENT挑戰賽】+電子相框
5天通過VR學習原理圖設計挑戰賽
5天通過VR學習原理圖挑戰賽
分享3天LabVIEW人臉識別挑戰賽設計心得,贏取學院課程福利!
【福利加“碼”】鴻蒙線上Codelabs系列挑戰賽第三期:挑戰HarmonyOS分布式趣味應用
【獲獎公示】華秋PCB多層板設計挑戰賽獲獎名單
【精品合集】瑞薩RA4M2物聯網網關設計挑戰賽作品合集
pcb導入不成功?原理圖如何進行ID號的復位
![pcb導入<b class='flag-5'>不成功</b>?原理圖如何進行ID號的復位](https://file.elecfans.com/web1/M00/C9/54/pIYBAF9z9VCAGya1AAGY0USwtMw861.png)
開發活動 | 嵌入式GUI挑戰賽報名開啟!參賽申領開發板
![開發活動 | 嵌入式<b class='flag-5'>GUI</b><b class='flag-5'>挑戰賽</b>報名開啟!參賽申領開發板](https://file1.elecfans.com/web2/M00/8C/52/wKgZomSqLViAPwCUAAADbu4X9Ec718.gif)
評論