嵌入式端音频开发(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;
}


目录
打赏
0
0
0
0
12
分享
相关文章
Android平台RTSP轻量级服务|RTMP推送摄像头或屏幕之音频接口设计
好多开发者在做Android平台录像或者RTSP轻量级服务、RTMP推送相关模块时,对需要设计哪些常用接口会心存疑惑,本文主要以大牛直播SDK(官方)为例,简单介绍下Android平台直播推送SDK所有音频相关的接口,感兴趣的开发者可以看看。
128 0
Android平台外部编码数据(H264/H265/AAC/PCMA/PCMU)实时预览播放技术实现
好多开发者可能疑惑,外部数据实时预览播放,到底有什么用? 是的,一般场景是用不到的,我们在开发这块前几年已经开发了非常稳定的RTMP、RTSP直播播放模块,不过也遇到这样的场景,部分设备输出编码后(视频:H.264/H.265,音频:AAC/PCMA/PCMU)的数据,比如无人机或部分智能硬件设备,回调出来的H.264/H.265数据,除了想转推到RTMP、轻量级RTSP服务或GB28181外,还需要本地预览甚至对数据做二次处理(视频分析、实时水印字符叠加等,然后二次编码),基于这样的场景诉求,我们开发了Android平台外部编码数据实时预览播放模块。
176 0
Android平台实现屏幕录制(屏幕投影)|音频播放采集|麦克风采集并推送RTMP或轻量级RTSP服务
Android平台屏幕采集、音频播放声音采集、麦克风采集编码打包推送到RTMP和轻量级RTSP服务的相关技术实现,做成高稳定低延迟的同屏系统,还需要有配套好的RTMP、RTSP直播播放器
107 0
Android平台RTMP推送|轻量级RTSP服务如何实现麦克风|扬声器声音采集切换
Android平台扬声器播放声音的采集,在无纸化同屏等场景下,意义很大,早期低版本的Android设备,是没法直接采集扬声器audio的(从Android 10开始支持),所以,如果需要采集扬声器audio,需要先做系统版本判断,添加相应的权限。
158 0
【摄像头数据处理】摄像头数据处理:使用FFmpeg合并、编码和封装视频流
【摄像头数据处理】摄像头数据处理:使用FFmpeg合并、编码和封装视频流
516 0
Android平台如何实现外部编码后(H.264/H.265)数据实时预览播放
我们在对接开发者的时候,遇到这样的诉求:除了正常的RTMP、RTSP直播播放外,有些硬件设备输出编码后(H.264/H.265)的数据,比如无人机或类似硬件产品,回调出来的H.264/H.265数据,除了正常转推到RTMP、轻量级RTSP服务或GB28181外,还需要本地预览甚至重新对数据做二次处理,基于这样的场景诉求,我们开发了外部编码后数据实时预览播放模块。
122 0
Android平台GB28181设备接入模块如何实现实时视频和本地录像双码流编码
我们在做Android平台GB28181设备接入模块的时候,遇到这样的场景,比如执法记录仪或智慧工地等场景下,由于GB28181设备接入模块,注册到国标平台后,平时只是心跳保持,或还有实时位置订阅,查看视频的时候,是按需看,而且有时候,网络环境并不是太好,所以,催生了这样一个诉求:部分开发者希望能本地录像的时候,录制高分辨率(比如1920*1080),国标平台侧发起实时视频查看请求的时候,上传低分辨率(如1280*720)数据,有点类似于IPC的主码流和子码流。
Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)编码前数据接入类型总结
很多开发者在做Android平台RTMP推流或轻量级RTSP服务(摄像头或同屏)时,总感觉接口不够用,以大牛直播SDK为例 (Github) 我们来总结下,我们常规需要支持的编码前音视频数据有哪些类型:
190 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等