test_audio_recorder_complete.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include "code/recorder/recorder_audio_recorder.h"
  2. #include "code/base/logger.h"
  3. #include <iostream>
  4. #include <thread>
  5. #include <chrono>
  6. using namespace av;
  7. using namespace av::recorder;
  8. int main() {
  9. // 初始化日志
  10. Logger::instance().setLevel(LogLevel::DEBUG);
  11. Logger::instance().info("开始测试音频录制器完整修复");
  12. try {
  13. // 创建音频录制器
  14. auto audioRecorder = std::make_unique<AudioRecorder>();
  15. // 设置录制参数
  16. RecorderParams params;
  17. params.type = MediaType::AUDIO;
  18. params.outputPath = "test_audio_complete.aac";
  19. params.audioParams.sampleRate = 44100;
  20. params.audioParams.channels = 2;
  21. params.audioParams.sampleFormat = AV_SAMPLE_FMT_S16;
  22. params.audioParams.bitrate = 128000;
  23. params.audioParams.codecName = "aac";
  24. params.audioParams.deviceId = "";
  25. std::cout << "初始化音频录制器..." << std::endl;
  26. ErrorCode result = audioRecorder->initialize(params);
  27. if (result != ErrorCode::SUCCESS) {
  28. std::cerr << "音频录制器初始化失败: " << static_cast<int>(result) << std::endl;
  29. return -1;
  30. }
  31. std::cout << "音频录制器初始化成功!" << std::endl;
  32. std::cout << "开始录制..." << std::endl;
  33. result = audioRecorder->startRecording();
  34. if (result != ErrorCode::SUCCESS) {
  35. std::cerr << "开始录制失败: " << static_cast<int>(result) << std::endl;
  36. return -1;
  37. }
  38. std::cout << "录制已开始!" << std::endl;
  39. // 录制5秒
  40. std::cout << "录制中,请说话..." << std::endl;
  41. std::this_thread::sleep_for(std::chrono::seconds(5));
  42. std::cout << "停止录制..." << std::endl;
  43. result = audioRecorder->stopRecording();
  44. if (result != ErrorCode::SUCCESS) {
  45. std::cerr << "停止录制失败: " << static_cast<int>(result) << std::endl;
  46. return -1;
  47. }
  48. std::cout << "录制已停止!" << std::endl;
  49. // 关闭录制器
  50. audioRecorder->close();
  51. std::cout << "音频录制器已关闭" << std::endl;
  52. std::cout << "测试完成! 输出文件: test_audio_complete.aac" << std::endl;
  53. } catch (const std::exception& e) {
  54. std::cerr << "测试过程中发生异常: " << e.what() << std::endl;
  55. return -1;
  56. }
  57. return 0;
  58. }