嵌入式端音频开发(Unisound篇)之 7.5 蜂鸟M音频控制

简介: 嵌入式端音频开发(Unisound篇)之 7.5 蜂鸟M音频控制

1.音频控制说明

控制说明:


  1. 可播放tools/scripts路径下的音频,文件名以序号区分
  2. 调用播放接口是异步不堵塞的
  3. AUDIO_PLAY_TYPE目前只支持AUDIO_PLAY_REPLY


2.音频控制接口

int  user_player_play (AUDIO_PLAY_TYPE type, const char *file) 
  播放文件 更多...
int  user_player_reply_list_num (const char *file_list, int num) 
  播放列表序号音频 更多...
int  user_player_reply_list_random (const char *file_list) 
  随机播放列表音频 更多...
int  user_player_reply_list_in_order (const char *file_list) 
  顺序播放列表中所有音频 更多...
int  user_player_stop (AUDIO_PLAY_TYPE type) 
  停止播放 更多...
 int  user_player_set_volume_min (void) 
  设置最小音量 
 int  user_player_set_volume_max (void) 
  设置最大音量 
 int  user_player_set_volume_mid (void) 
  设置中等音量 
 int  user_player_set_volume_up (void) 
  增加音量 
 int  user_player_set_volume_down (void) 
  减小音量 
 int  user_player_speaker_mute (void) 
  设置喇叭静音 
 int  user_player_speaker_unmute (void) 
  取消设置喇叭静音 
 int  user_player_shutup_mode (void) 
  系统进入无回复播报模式 
 int  user_player_shutup_exit (void) 
  系统退出无回复播报模式  
函数说明
◆ user_player_play()
int user_player_play  ( AUDIO_PLAY_TYPE  type,  
  const char *  file  
 )   
参数
type 播放类型  
file 播放文件名  
返回值
0 操作成功  
-1 操作失败  
◆ user_player_reply_list_in_order()
int user_player_reply_list_in_order  ( const char *  file_list )  
参数
file_list 文件列表 [1, 2, 3]  
返回值
0 操作成功  
-1 操作失败  
◆ user_player_reply_list_num()
int user_player_reply_list_num  ( const char *  file_list,  
  int  num  
 )   
参数
file_list 文件列表 [1, 2, 3]  
num 列表序号  
返回值
0 操作成功  
-1 操作失败  
◆ user_player_reply_list_random()
int user_player_reply_list_random  ( const char *  file_list )  
参数
file_list 文件列表 [1, 2, 3]  
返回值
0 操作成功  
-1 操作失败  
◆ user_player_stop()
int user_player_stop  ( AUDIO_PLAY_TYPE  type )  
参数
type 播放类型  
返回值
0 操作成功  
-1 操作失败  
3.音频控制demo
#include "user_player.h"
#define TAG "player_demo"
static void _player_test_process(void *args) {
  while (1) {
    uni_sleep(10);
    user_player_set_volume_min();
    LOGT(TAG, "set min vol");
    /*播放9.mp3文件*/
    user_player_play(AUDIO_PLAY_REPLY, "9"); //9.mp3
    uni_sleep(10);
    user_player_set_volume_mid();
    LOGT(TAG, "set mid vol");
    /*播放列表中的101.MP3文件*/
    user_player_reply_list_num("[9,101,102]", 1);
    uni_sleep(10);
    user_player_set_volume_max();
    LOGT(TAG, "set max vol");
    /*随机播放列表中的某个文件*/
    user_player_reply_list_random("[9,101,102]");
    uni_sleep(10);
    /*顺序播放列表中的所有文件*/
    user_player_reply_list_in_order("[9,101,102]");
    uni_sleep(10);
  }
}
static Result _create_player_test_thread(void) {
  thread_param param;
  uni_pthread_t pid;
  uni_memset(&param, 0, sizeof(param));
  param.stack_size = STACK_SMALL_SIZE;
  param.priority = OS_PRIORITY_LOW;
  uni_strncpy(param.task_name, "player_test", sizeof(param.task_name) - 1);
  if (0 != uni_pthread_create(&pid, &param,
                              _player_test_process, NULL)) {
    LOGE(TAG, "create thread failed");
    return E_FAILED;
  }
  uni_pthread_detach(pid);
  return E_OK;
}
int hb_player(void) {
  _create_player_test_thread();
  return 0;
}


目录
相关文章
|
11月前
|
机器学习/深度学习 存储 自然语言处理
简单聊一聊大模型微调技术-LoRA
LoRA(Low-Rank Adaptation)是一种用于减少大模型微调中参数数量和计算资源的技术。通过引入低秩分解,LoRA 仅更新少量参数,从而显著降低显存消耗和计算需求。适用于大规模预训练模型的微调、跨领域迁移学习、低资源设备部署和多任务学习等场景。例如,在微调 BERT 模型时,LoRA 可以仅调整约 0.1% 的参数,保持与全量微调相近的性能。
1574 0
|
12月前
|
前端开发 数据安全/隐私保护
crypto-js中AES的加解密封装
文章介绍了如何在前端使用crypto-js库进行AES加密和解密,提供了加解密的函数封装示例,并演示了如何加密和解密字符串或对象。
804 1
crypto-js中AES的加解密封装
|
11月前
|
Web App开发 JSON 自然语言处理
fastchat与autogen使用要点澄清
fastchat与autogen使用要点澄清
|
11月前
|
SQL 数据库
SQL查询中排除空值列的技巧与方法
在数据库查询中,经常需要处理包含空值(NULL)的数据列
1619 3
|
人工智能 自然语言处理 PyTorch
从千问Agent看AI Agent——我们很强,但还有很长的路要走
本项目主要通过通义千问作为基础大模型,通义Agent浏览器助手实现网页和PDF材料,以帮助您快速了解多个页面的内容,总结您浏览过的内容,并减少繁琐的文字工作。实现数据分析与可视化、处理文件等的代码解释器功能。
从千问Agent看AI Agent——我们很强,但还有很长的路要走
IDEA设置Tabs多行显示的方法
这篇文章介绍了在IntelliJ IDEA中设置多行显示Tabs的方法,包括如何取消单行展示Tabs并设置可展示的Tabs数量。
IDEA设置Tabs多行显示的方法
|
消息中间件 Java RocketMQ
微服务架构师的福音:深度解析Spring Cloud RocketMQ,打造高可靠消息驱动系统的不二之选!
【8月更文挑战第29天】Spring Cloud RocketMQ结合了Spring Cloud生态与RocketMQ消息中间件的优势,简化了RocketMQ在微服务中的集成,使开发者能更专注业务逻辑。通过配置依赖和连接信息,可轻松搭建消息生产和消费流程,支持消息过滤、转换及分布式事务等功能,确保微服务间解耦的同时,提升了系统的稳定性和效率。掌握其应用,有助于构建复杂分布式系统。
271 0
|
云安全 弹性计算 安全
AK泄露了,怎么办?
AccessKey(包含AccessKey ID和Secret)是程序访问的凭证,无异于打开云上资源的大门钥匙,保管好AK是保障云上安全最重要的事情,甚至没有之一。
107396 8
|
存储 移动开发 AndFix
mPaaS常见问题之pushWindow打开url白屏过一会提示网络超时如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
269 0
|
负载均衡 安全 Java
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法
基于ES 7.x 客户端:Java High Level Rest clients及Transport Client 兼容性、性能对比、使用方法