idl_capture工具的使用
·
idl_capture工具的代码路径:
drivers_peripheral/audio/test/sample/idl_capture.c
选择菜单:
static void PrintMenu2(void)
{
printf(" ================== Play Capture Menu ================== \n");
printf("| 1. Capture Start |\n");
printf("| 2. Capture Stop |\n");
printf("| 3. Capture Resume |\n");
printf("| 4. Capture Pause |\n");
printf("| 5. Capture SetVolume |\n");
printf("| 6. Capture SetGain |\n");
printf("| 7. Capture SetMute |\n");
printf("| 8. Capture SetAttributes |\n");
printf("| 9. Capture SelectScene |\n");
printf("| 10. Capture GetExtParams |\n");
printf("| 11. Capture getMmapPosition |\n");
printf("| 12.Exit |\n");
printf(" ======================================================= \n");
}
static struct ProcessCaptureMenuSwitchList g_processCaptureMenuSwitchList[] = {
{CAPTURE_START, StartButtonCapture },
{CAPTURE_STOP, StopButtonCapture },
{CAPTURE_RESUME, SetCaptureResume },
{CAPTURE_PAUSE, SetCaptyrePause },
{SET_CAPTURE_VOLUME, SetCaptureVolume },
{SET_CAPTURE_GAIN, SetCaptureGain },
{SET_CAPTURE_MUTE, SetCaptureMute },
{SET_CAPTURE_ATTRIBUTES, SetCaptureAttributes },
{SET_CAPTURE_SLECET_SCENE, SelectCaptureScene },
{GET_CAPTURE_EXT_PARAMS, GetCaptureExtParams },
{GET_CAPTURE_POSITION, GetCaptureMmapPosition},
};
支持开始录音,停止录音,恢复,暂停录音,设置音量,增益,静音,选择场景等功能。
选择录音场景,媒体,蓝牙,通话:
static void SelectSceneMenu(void)
{
printf(" ==================== Select Scene ==================== \n");
printf("0 is Midea. |\n");
printf("1 is Communication. |\n");
printf("2 is Voice-all. |\n");
printf(" ======================================================= \n");
}
static int32_t SelectCaptureScene(struct IAudioCapture **capture)
{
(void)capture;
int32_t val = 0;
struct AudioSceneDescriptor captureScene;
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:
captureScene.scene.id = AUDIO_IN_MEDIA;
break;
case AUDIO_IN_COMMUNICATION:
captureScene.scene.id = AUDIO_IN_COMMUNICATION;
break;
case AUDIO_IN_CALL - 1:
captureScene.scene.id = AUDIO_IN_CALL;
break;
default:
AUDIO_FUNC_LOGE("Select Scene invaild.");
return HDF_FAILURE;
}
ret = PrintCaptureSelectPin(&captureScene);
if (ret != HDF_SUCCESS) {
AUDIO_FUNC_LOGE("Select pin failed");
return HDF_FAILURE;
}
captureScene.desc.desc = "mic";
if (g_capture == NULL || g_capture->SelectScene == NULL) {
AUDIO_FUNC_LOGE("Record already stop,");
SystemInputFail();
return HDF_FAILURE;
}
ret = g_capture->SelectScene((void *)g_capture, &captureScene);
if (ret < 0) {
AUDIO_FUNC_LOGE("Select scene fail");
}
return ret;
}
idl_capture工具的编译
编译测试程序 ./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_capture /data
修改测试文件权限 hdc_std shell chmod 777 /data/idl_capture
运行测试程序 ./data/idl_capture /data/single_short2.wav
更多推荐

所有评论(0)