diff --git a/media/BUILD.gn b/media/BUILD.gn index 01f99e1ac2988557b7e3dbc8de795ce0996aca54..65f1e693a3b8d3aa1e46497140cc4b6c71d66e63 100755 --- a/media/BUILD.gn +++ b/media/BUILD.gn @@ -29,6 +29,24 @@ executable("camera_sample") { output_dir = "$root_out_dir/dev_tools" } +executable("audio_capture_sample") { + sources = [ "audio_capture_sample.cpp" ] + cflags = [ "-Wall" ] + cflags_cc = cflags + + include_dirs = [ "//foundation/multimedia/audio_lite/interfaces/kits" ] + include_dirs += [ "//foundation/multimedia/utils/lite/interfaces/kits" ] + + ldflags = [ "-lstdc++" ] + ldflags += [ "-lpthread" ] + ldflags += [ "-Wl,-rpath-link=$ohos_root_path/$root_out_dir" ] + deps = [ + "//foundation/multimedia/audio_lite/frameworks:audio_capturer_lite", + "//third_party/bounds_checking_function:libsec_shared", + ] + output_dir = "$root_out_dir/dev_tools" +} + executable("player_sample") { sources = [ "player_sample.cpp" ] cflags = [ "-Wall" ] @@ -48,5 +66,6 @@ lite_component("media_sample") { features = [ ":camera_sample", ":player_sample", + ":audio_capture_sample", ] } diff --git a/media/audio_capture_sample.cpp b/media/audio_capture_sample.cpp index 6d321401c45902c7cddbd63dd6d210750b70edba..06e807256fd537ec001e0522e08a40149caeb43b 100644 --- a/media/audio_capture_sample.cpp +++ b/media/audio_capture_sample.cpp @@ -15,8 +15,9 @@ #include #include -#include #include +#include +#include #include "audio_capturer.h" #include "media_errors.h" #include "securec.h" @@ -93,6 +94,7 @@ static char *GernerateFileName(AudioCodecFormat format) static void AudioInputSourceProcess(AudioSourceInput *audioSourceInput) { + const int32_t waitTimeUs = 20000; std::cout << "audioSourceInput: " << audioSourceInput << std::endl; if (audioSourceInput == nullptr) { return; @@ -114,8 +116,9 @@ static void AudioInputSourceProcess(AudioSourceInput *audioSourceInput) while (audioSourceInput->bThreadRun) { int ret = audioSourceInput->audioCap->Read(audioSourceInput->buffer, audioSourceInput->framesize, false); - if (ret == -1) { + if (ret <= 0) { std::cout << "audioCap Read failed ret:" << ret << std::endl; + usleep(waitTimeUs); continue; } if (fwrite(audioSourceInput->buffer, 1, ret, pfd) != ret) {