test_audio_recorder_fix.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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::recorder;
  7. using namespace av;
  8. int main() {
  9. // 初始化日志
  10. Logger::instance().setLevel(LogLevel::DEBUG);
  11. std::cout << "测试音频录制器修复..." << std::endl;
  12. try {
  13. // 创建音频录制器
  14. AudioRecorder recorder;
  15. // 设置录制参数
  16. AudioRecorderParams params;
  17. params.capturerType = capture::CapturerType::AUDIO_MIC;
  18. params.sampleRate = 44100;
  19. params.channels = 2; // 设置为2声道
  20. params.sampleFormat = AV_SAMPLE_FMT_S16;
  21. params.codecName = "aac";
  22. params.bitrate = 128000;
  23. params.outputPath = "./test_audio_fix.mp4";
  24. params.format = "mp4";
  25. std::cout << "初始化录制器参数: " << params.sampleRate << "Hz, "
  26. << params.channels << "ch, " << params.codecName << std::endl;
  27. // 初始化录制器
  28. ErrorCode result = recorder.initialize(params);
  29. if (result == ErrorCode::SUCCESS) {
  30. std::cout << "✓ 音频录制器初始化成功!" << std::endl;
  31. // 尝试开始录制
  32. result = recorder.startRecording();
  33. if (result == ErrorCode::SUCCESS) {
  34. std::cout << "✓ 音频录制开始成功!" << std::endl;
  35. // 录制3秒
  36. std::this_thread::sleep_for(std::chrono::seconds(3));
  37. // 停止录制
  38. result = recorder.stopRecording();
  39. if (result == ErrorCode::SUCCESS) {
  40. std::cout << "✓ 音频录制停止成功!" << std::endl;
  41. } else {
  42. std::cout << "✗ 停止录制失败,错误码: " << static_cast<int>(result) << std::endl;
  43. }
  44. } else {
  45. std::cout << "✗ 开始录制失败,错误码: " << static_cast<int>(result) << std::endl;
  46. }
  47. recorder.close();
  48. } else {
  49. std::cout << "✗ 音频录制器初始化失败,错误码: " << static_cast<int>(result) << std::endl;
  50. return 1;
  51. }
  52. } catch (const std::exception& e) {
  53. std::cout << "✗ 异常: " << e.what() << std::endl;
  54. return 1;
  55. }
  56. std::cout << "测试完成!" << std::endl;
  57. return 0;
  58. }