在嵌入式平台,如果需要多路音频复用,可以把多路音频进行复合,复合为双声道数据,再有一路i2s进行数据输出,双声道的数据就会输出,形成多路语音同时输出功能。 AudioMuxer::AudioMuxer() { finish_ = true; mux_thread_ = std::thread(&AudioMuxer::MuxThreadFn, this); while (finish_) std::this_thread::yield(); } AudioMuxer::~AudioMuxer() { finish_ = true; audio_buffer_cond_.notify_all(); mux_thread_.join(); } int AudioMuxer::RegisterOutCb(const PcmOutCb& cb) { cb_ = cb; return 0; } int AudioMuxer::ClearBuffer(int chn) { if (chn > kMaxAudioChn) return -1; std::lock_guard<std::mutex> lock(audio_buffer_mtx_); std::queue<AuidoBufType>().swap(audio_buffer_[chn]); clear_buf_chn_ = chn; clear_buf_flag_ = true; return 0; } int AudioMuxer::SendInput(int chn, const char* buffer, unsigned int size) { if (chn > kMaxAudioChn) return -1; { std::unique_lock<std::mutex> lock(audio_buffer_mtx_); audi
双声道合成多路语音数据,一路I2S输出多路音频
于 2024-06-06 16:25:55 首次发布