diff --git a/src/iflytop/components/audio/audio_clip.cpp b/src/iflytop/components/audio/audio_clip.cpp index 026614a..a28516f 100644 --- a/src/iflytop/components/audio/audio_clip.cpp +++ b/src/iflytop/components/audio/audio_clip.cpp @@ -66,8 +66,7 @@ string AudioClip::toString() { char buf[64] = {0}; strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &tm); - string str = fmt::format("audio:{} c-{} r-{} f-{} {}:{}", buf, m_ch, m_rate, AudioFormatToStr(m_format), - (void *)m_voice, m_voicebufsize); + string str = fmt::format("audio:{} c-{} r-{} f-{} {}:{}", buf, m_ch, m_rate, AudioFormatToStr(m_format), (void *)m_voice, m_voicebufsize); return str; } @@ -84,3 +83,9 @@ void AudioClip::getOneCHVoice(vector &voice, size_t ch) { memcpy(&voice[i * oneframebytes], &m_voice[i * m_ch * oneframebytes + ch * oneframebytes], oneframebytes); } } + +shared_ptr AudioClip::getOneCHVoice(size_t ch) { + vector voice; + getOneCHVoice(voice, ch); + return make_shared(voice.data(), voice.size(), 1, m_rate, m_format); +} diff --git a/src/iflytop/components/audio/audio_clip.hpp b/src/iflytop/components/audio/audio_clip.hpp index 5e9ad7e..2c939e7 100644 --- a/src/iflytop/components/audio/audio_clip.hpp +++ b/src/iflytop/components/audio/audio_clip.hpp @@ -14,8 +14,8 @@ #include #include -#include "iflytop/core/core.hpp" #include "audio_format.hpp" +#include "iflytop/core/core.hpp" /** * @brief @@ -39,8 +39,8 @@ class AudioClip : public enable_shared_from_this { size_t m_audio_duration_ms = 0; // 音频时长 uint32_t m_number_of_samples = 0; // 采样点数 - tp_sys m_human_readable_tp = {}; // 人类可读的时间戳,可能由于时间服务器的原因,会发生突变 - tp_steady m_tp = {}; // 系统时间戳 + tp_sys m_human_readable_tp = {}; // 人类可读的时间戳,可能由于时间服务器的原因,会发生突变 + tp_steady m_tp = {}; // 系统时间戳 mutex m_mutex; map m_context; @@ -58,7 +58,8 @@ class AudioClip : public enable_shared_from_this { tp_steady getTp(); uint32_t getBitsPerSample(); - void getOneCHVoice(vector &voice, size_t ch); + void getOneCHVoice(vector &voice, size_t ch); + shared_ptr getOneCHVoice(size_t ch); uint8_t *data(); size_t size();