idl_render工具的使用
idl_render工具的代码路径: drivers_peripheral/audio/test/sample/idl_render.c 选择菜单: static void PrintMenu2(void) { printf(" ================== Play Render Menu ================== \n"); printf("|
idl_render工具的代码路径:
drivers_peripheral/audio/test/sample/idl_render.c
选择菜单:
static void PrintMenu2(void)
{
printf(" ================== Play Render Menu ================== \n");
printf("| 1. Render Start |\n");
printf("| 2. Render Stop |\n");
printf("| 3. Render Resume |\n");
printf("| 4. Render Pause |\n");
printf("| 5. Render SetVolume |\n");
printf("| 6. Render GetGain |\n");
printf("| 7. Render SetMute |\n");
printf("| 8. Render SetAttributes |\n");
printf("| 9. Render SelectScene |\n");
printf("| 10. Render getEXtParams |\n");
printf("| 11. Render getMmapPosition |\n");
printf("| 12.Exit |\n");
printf(" ====================================================== \n");
}
static struct ProcessRenderMenuSwitchList g_processRenderMenuSwitchList[] = {
{RENDER_START, PlayingAudioFiles },
{RENDER_STOP, StopAudioFiles },
{RENDER_RESUME, SetRenderResume },
{RENDER_PAUSE, SetRenderPause },
{SET_RENDER_VOLUME, SetRenderVolume },
{SET_RENDER_GAIN, GetRenderGain },
{SET_RENDER_MUTE, SetRenderMute },
{SET_RENDER_ATTRIBUTES, SetRenderAttributes },
{SET_RENDER_SLECET_SCENE, SelectRenderScene },
{GET_RENDER_EXT_PARAMS, GetExtParams },
{GET_RENDER_POSITION, GetRenderMmapPosition},
};
支持开始播放,停止,恢复,暂停,设置音量,增益,静音,选择场景等功能。
选择播放场景:
static int32_t SelectRenderScene(struct IAudioRender **render)
{
(void)render;
int32_t val = 0;
struct AudioSceneDescriptor scene;
system("clear");
SelectSceneMenu();
printf("Please input your choice:\n");
int32_t ret = CheckInputName(INPUT_INT, (void *)&val);
if (ret < 0) {
AUDIO_FUNC_LOGE("Invalid value!");
SystemInputFail();
return HDF_FAILURE;
}
switch (val) {
case AUDIO_IN_MEDIA:
scene.scene.id = AUDIO_IN_MEDIA;
PrintRenderSelectPinFirst(&scene);
break;
case AUDIO_IN_COMMUNICATION:
scene.scene.id = AUDIO_IN_COMMUNICATION;
PrintRenderSelectPinSecond(&scene);
break;
case AUDIO_IN_RINGTONE:
scene.scene.id = AUDIO_IN_RINGTONE;
scene.desc.pins = PIN_OUT_SPEAKER | PIN_OUT_HEADSET;
break;
case AUDIO_IN_CALL:
scene.scene.id = AUDIO_IN_CALL;
PrintRenderSelectPinThird(&scene);
break;
case AUDIO_MMAP_NOIRQ:
scene.scene.id = AUDIO_MMAP_NOIRQ;
PrintRenderSelectPinFirst(&scene);
break;
default:
break;
}
scene.desc.desc = "mic";
if (g_render == NULL || g_render->SelectScene == NULL) {
AUDIO_FUNC_LOGE("Music already stop,");
SystemInputFail();
return HDF_FAILURE;
}
ret = g_render->SelectScene((void *)g_render, &scene);
if (ret < 0) {
AUDIO_FUNC_LOGE("Select scene fail\n");
}
return ret;
}
idl_render工具的编译
编译测试程序 ./build.sh --product-name oriole --ccache --build-target drivers/peripheral/audio/test/sample_audio_sample
修改权限 14 / 15 hdc_std shell mount -o rw,remount /
hdc_std shell mount -o rw,remount /vendor
将测试程序和音乐文件推送到板子上 hdc_std file send F:\idl_render /data hdc_std file send F:\single_short2.wav /data
修改测试文件权限 hdc_std shell chmod 777 /data/idl_render
运行测试程序 ./data/idl_render /data/single_short2.wav 选择primary->service loading->start->non-mmap
更多推荐
所有评论(0)