大彩物联型串口屏遍历U盘、SD卡中音频和视频文件操作说明 点击:751 | 回复:2



😊

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:34帖 | 14回
  • 年度积分:3
  • 历史总积分:142
  • 注册:2019年3月06日
发表于:2019-05-16 16:22:20
楼主

大彩物联型串口屏通过添加LUA程序可以实现遍历外部的U盘或SD卡中的文件。在广州大彩提供的范例工程demo中,可以实现遍历外部U盘和SD卡下目录所有的音频和视频文件并播放遍历出来的音频和视频。

  大彩物联型串口屏实现遍历U盘中、SD卡中的视频和音频需完成以下4个步骤:

  1.将工程需要的视频进行格式转换(MP4格式);(参考文档《串口屏如何播放视频》);

  2.将视频或音频添加到U盘或SD卡中;

  3.在工程配置;(具体配置参考例程Demo);

  4.编写LUA程序。


工程配置

  例程画面中一共有三个画面,分别是首页、视频、音频画面。

  1.首页画面配置如下图所示;



2.视频画面配置,如下图所示;画面中的视频播放控件的属性窗口中“播放结束时”设为发送通知,如下图所示



3.音频画面配置,如下图所示;编号1到10的控件为文本控件用于显示遍历出来的音频名字,编号11到20为图标控件用于提示当前正在播放的音频,编号35到44为按钮控件,按下按钮播放对应文本框中的音频。


编写LUA脚本

工程创建时在工程目录下会生成一个main.lua文件,点击Visual TFF软件的工具栏选择LUA编程后可以编写main.lua文件,如下图所示;



当串口屏检测到U盘或SD卡插入时会调用LUA脚本的函数on_sd_inserted(dir)或是on_usb_inserted(dir)并将U盘或者SD卡的路径传如函数中;只需要在函数on_sd_inserted(dir)或是on_usb_inserted(dir)中调用遍历目录的函数即可实现遍历SD卡或U盘的音频和视频文件,程序如下:


    ……

--当检测到SD卡插入串口屏后会调用此函数

function on_sd_inserted(dir)                                     -- SD卡回调函数

     listdir(dir)                                               --遍历目录

end

function on_usb_inserted(dir)                                    -- U盘函数

     listdir(dir)                                               --遍历目录

end

    ……

---获取扩展名

function  getExtension(str)                                       

    return str:match(".+%.(%w+)$")                             --调用LUA的库函数获取字符串

end

 

--遍历目录的函数,将目录中的音频和视频文件遍历出来

function  listdir(rootpath)                                         

    for entry in lfs.dir(rootpath) do  

        if entry ~= '.' and entry ~= '..' then                             --跳过目录中的.和..

            local path = rootpath .. '/' .. entry  

            local attr = lfs.attributes(path)                            --获取指定路径的属性

            if  attr.mode ~= 'directory' then

    ext = getExtension(path)                          --获取扩展名

    if ext=='mp4' then                               --筛选MP4文件

  videofilenames[videofilecount] = path

      videofilecount = videofilecount+1

   end


   if ext == 'jpg'  or ext == 'jpeg' or ext=='png'  then      --筛选图片文件

  pic_names[picfilecount] = path

      picfilecount = picfilecount+1

   end

   if ext=='wav' or ext=='mp3' then                     --筛选音频文件

  music_names[musicfilecount] = path

  musicfilecount = musicfilecount+1

   end           

             else 

                listdir(path)                                     

            end  

        end  

    end  

end

……

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

如果成功遍历后,切换到音乐画面,如下图所示;会将插入串口屏的SD卡里的音频文件名显示在文本框中,LUA脚本程序如下:


function update_music_ui()                                  --将遍历出来的音频名字更新到音频画面

    --向前播放

    if videoplay_index<first_music_index then

  first_music_index = videoplay_index

end

--向后播放

if videoplay_index>=first_music_index+10 then

   first_music_index = videoplay_index-9

end

    for i=0,9 do

    if first_music_index+i<musicfilecount then

            set_visiable(2,11+i,1)                                      --图标

            local filename = string.match(music_names[first_music_index+i], ".+/(.+)")

    set_text(2,1+i,'        '..filename)                           --显示音频名字

else

    set_visiable(2,11+i,0)                                       --图标

    set_text(2,1+i,'')

end

--正在播放的音乐,图标和文字都高亮显示

        if first_music_index+i==videoplay_index then

            set_value(2,11+i,1)                                         --图标

set_back_color(2,1+i,0x5aeb)

else

    set_value(2,11+i,0)                                        --图标

set_back_color(2,1+i,0x3186)

end       

    end    

end 

function on_control_notify(screen,control,value)

    --load_config('e:/config.txt')

--load_ad('e:/sub.txt')

if screen == 0 then                                          --首页

if control==4 then                                     -- 按钮4按下

           playing_mode = 1

           change_screen(0)                                

 

    end

    if control==5 then                                     -- 按钮5按下

           playing_mode = 2 

   change_screen(2)                                  --切换到音频画面

           update_music_ui()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

     play_next_video()                                  --播放下一首歌


    end

    if control==6 then                                     --视频模式

   playing_mode = 0 

   change_screen(1)                                  --切换到视频画面    

   play_next_video()                                 --播放下一个视频

    end

end




详细程序需要参考源文件,以上程序为截取源程序中的部分函数。




李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2019-05-17 10:29:05
1楼

怎么没有图片吗,分享一下

😊

  • 精华:0帖
  • 求助:0帖
  • 帖子:34帖 | 14回
  • 年度积分:3
  • 历史总积分:142
  • 注册:2019年3月06日
发表于:2019-05-17 16:33:53
2楼


回复内容:我是从大彩官网上面下载下来的,你想要图片,可以去他们官网资料下载栏目自己下载。

对: 李东泽 怎么没有图片吗,分享一下 内容的回复!

-------------------------



热门招聘
相关主题

官方公众号

智造工程师