readme.txt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. demo 功能:
  2. 当前demo 实现的是从mic 录取数据,然后opus 编码后将编码后的数据保存到文件中的功能,客户可以参考设置,实现mic 采集数据编码然后上传数据的功能。
  3. demo 操作:
  4. 假设平台的存储介质是nor flash,fat文件系统根目录为/NOR:,录音数据想保存到/NOR:/record.opus,
  5. 1、若接着USB上电后会自动进入U盘模式,按on/off键退出U盘模式
  6. 2、串口输入指令app nc start /NOR:/record.opus
  7. 3、进行录音
  8. 4、串口输入指令app nc stop
  9. 5、接上USB重启,进入U盘模式,查看录制的文件record.opus
  10. demo 说明:
  11. t_media_processor *processor = &nc_processor;
  12. io_stream_t enc_out_stream = NULL;
  13. media_init_param_t init_param;
  14. media_player_t *player = NULL;
  15. memset(processor, 0, sizeof(t_media_processor));
  16. memset(&init_param, 0, sizeof(init_param));
  17. enc_out_stream = open_file_stream(saved_url, MODE_OUT);
  18. if (!enc_out_stream) {
  19. SYS_LOG_ERR("stream open failed (%s)\n", saved_url);
  20. goto err_exit;
  21. }
  22. // 设置录音功能
  23. init_param.type = MEDIA_SRV_TYPE_CAPTURE;
  24. // 设置为录音功能类型,默认从mic采集数据
  25. init_param.stream_type = AUDIO_STREAM_AI;
  26. // 设置编码类型
  27. init_param.capture_format = OPUS_TYPE;
  28. // 设置mic数据采集采样率
  29. init_param.capture_sample_rate_input = 16;
  30. // 设置数据编码采样率
  31. init_param.capture_sample_rate_output = 16;
  32. // 设置数据位宽
  33. init_param.capture_sample_bits = 16;
  34. // 仅支持单声道数据编码
  35. init_param.capture_channels_input = 1;
  36. init_param.capture_channels_output = 1;
  37. //设置编码数据位宽
  38. init_param.capture_bit_rate = 16;
  39. init_param.capture_input_stream = NULL;
  40. //设置编码完成输出的数据流,demo输出到文件中,如果客户实现AI功能,可以用ringbuffer stream. 编码往ringbuffer stream中 写,
  41. // 数据上传线程从ring buffer stream 中读取并通过蓝牙上传。
  42. init_param.capture_output_stream = enc_out_stream;
  43. player = media_player_open(&init_param);
  44. if (!player) {
  45. SYS_LOG_ERR("media_player_open failed\n");
  46. goto err_exit;
  47. }
  48. media_player_play(player);
  49. processor->player = player;
  50. processor->enc_out_stream = enc_out_stream;
  51. return;
  52. err_exit:
  53. if (enc_out_stream)
  54. close_stream(enc_out_stream);
  55. }