25. 音频控件

用途:音频控件为用户提供播放音频文件、调节音量等操作的功能。

25.1. 属性

音频属性

基础属性 : 参考控件概念- 基础属性

特有属性 :

音频特有属性

  • 存放位置(from):0-内部存储,1-外部TF卡(只读)

  • 播放状态(play):播放状态:0-停止,1-播放,2-暂停(读写)

  • 循环播放(loop):循环播放:0-单次,1-循环(读写)

  • 播放时间(time):当前播放时间,单位秒。脚本读该属性时,获取音频当前播放时间。脚本设置该属性时,指定音频播放时间(读写)

  • 总时间(atime):音频总时长,单位秒(只读)

注意

使用脚本获取 播放时间(time) 时,系统会自动更新该属性值。

存放位置(from)0-内部存储 时, 属性如下图所示

音频特有属性

  • 编号(num):音频id,范围0-65535,65535表示无(读写)

存放位置(from)0-外部TF卡 时, 属性如下图所示

音频特有属性

  • 路径(path):音频存放路径(例如:test.ATKA)。 对于串口屏 文件需放在TF卡 ATK_HMI/AUDIO 目录下。 对于模拟器 文件需放在工程目录的 SD/ATK_HMI/AUDIO 目录下 。注意:路径不支持中文(读写)

  • 路径最大长度(size):单位字节,范围:0-4096,UTF-8编码下中文字符占用3个字节,其他编码中文字符占用2个字节(只读)

注意

同时只能播放一个音频或者视频。


25.2. 事件

播放完成事件: 音频完整播放结束才执行


25.3. 如何导入音频资源

  • 使用 音视频转换工具音频文件 转换为 ATKA文件 , 请参考章节 音视频工具

  • 打开HMI软件,从右下角的资源栏中选择 音频 -> 添加

导入音频资源

  • 导入成功,会在音频资源下显示 资源ID音频大小 等信息

音频列表

25.4. 功能演示

点击下载演示工程


小技巧

把工程配置的启动页面(pid)改为当前页面ID可以立即显示此页面。


25.4.1. 播放音频

音频控件demo

  • 功能:播放一个音频,实现停止,播放,暂停,循环功能。滑块可以实时显示播放时间进度,拖动滑块可以改变音频播放进度。

  • 原理:停止,播放,暂停,循环,改变播放进度功能通过控件属性值实现。显示播放时间通过定时器和滑块控件实现。

    • 通过bl0、bl1、bl2和视频的播放完成事件实现停止,播放,暂停,循环功能

      1、在bl0控件的 弹起事件 中编写以下脚本

      1a0.play =2; //设a0为暂停状态
      2bl0.txt.str = "播放";//设bl0的文本值为 播放
      

      2、在bl0控件的 按下事件 中编写以下脚本

      1sl0.min=0;
      2sl0.max=a0.atime;
      3
      4a0.play =1; //设a0为播放状态
      5bl1.val = 0;//设bl1为弹起状态
      6bl0.txt.str = "暂停";//设bl0的文本值为 暂停
      

      3、在bl1控件的 按下事件 中编写以下脚本

      1a0.play =0; //设a0为停止状态
      2bl0.val = 0; //设bl0为弹起状态
      3bl0.txt.str = "播放";//设bl0的文本值为播放
      

      4、在bl2控件的 弹起事件 中编写以下脚本

      1a0.loop = 0;//设a0为单次播放
      2bl2.txt.str = "单次";//设bl2的文本值为 单次
      

      5、在bl2控件的 按下事件 中编写以下脚本

      1a0.loop = 1;//设v0为循环播放
      2bl2.txt.str = "循环";//设bl2的文本值为 循环
      

      6、在a0控件的 播放完成事件 中编写以下脚本

      1bl0.val = 0; //设bl0为弹起状态
      2bl0.txt.str = "播放";//设bl0的文本值为播放