47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
|
|
/***************************************************
|
|||
|
|
该demo主要是使用AT命令控制播放音频,
|
|||
|
|
AT命令格式:AT+PLAY_AUDIO=xxx.xxx,mode,
|
|||
|
|
支持的格式为wav、mp3、amr、aac-lc,
|
|||
|
|
***************************************************/
|
|||
|
|
#include "basic_include.h"
|
|||
|
|
#include "audio_media_ctrl/audio_media_ctrl.h"
|
|||
|
|
|
|||
|
|
struct msi *audio_play_msi = NULL;
|
|||
|
|
int32 atcmd_play_audio(const char *cmd, char *argv[], uint32 argc)
|
|||
|
|
{
|
|||
|
|
char audio_filePath[20];
|
|||
|
|
uint8_t play_mode = 0;
|
|||
|
|
AUDEC_INIT audec_init;
|
|||
|
|
|
|||
|
|
if(argc < 2) {
|
|||
|
|
os_printf("%s argc err:%d,enter the path and mode\n",__FUNCTION__,argc);
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
if(argv[0]) {
|
|||
|
|
memset(audio_filePath,0,sizeof(audio_filePath));
|
|||
|
|
memcpy(audio_filePath,argv[0],strlen(argv[0]));
|
|||
|
|
play_mode = os_atoi(argv[1]);
|
|||
|
|
if(play_mode) {
|
|||
|
|
if(audio_play_msi) {
|
|||
|
|
audio_file_play_stop(audio_play_msi);
|
|||
|
|
audio_play_msi = NULL;
|
|||
|
|
}
|
|||
|
|
audec_init.track_type = MEDIA_TRACK;
|
|||
|
|
audec_init.priority = play_interruptible;
|
|||
|
|
audec_init.direct_to_dac = 1;
|
|||
|
|
audec_init.use_tpc = 0;
|
|||
|
|
audec_init.destroy_self = 0;
|
|||
|
|
audec_init.src_msi = NULL;
|
|||
|
|
audio_play_msi = audio_file_play_init(audio_filePath,play_mode,&audec_init);
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
if(audio_play_msi == NULL) {
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
audio_file_play_stop(audio_play_msi);
|
|||
|
|
audio_play_msi = NULL;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return 0;
|
|||
|
|
}
|