mirror of
https://github.com/m5stack/StackFlow.git
synced 2026-05-20 11:32:11 -07:00
[fix] fix alsa audio cap
This commit is contained in:
@@ -11,6 +11,7 @@ static int gcapLoopExit = 0;
|
||||
void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int channel, int rate, int bit,
|
||||
AUDIOCallback callback)
|
||||
{
|
||||
gcapLoopExit = 0;
|
||||
struct pcm_config config;
|
||||
unsigned int pcm_open_flags;
|
||||
struct pcm *pcm;
|
||||
@@ -23,7 +24,7 @@ void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int ch
|
||||
memset(&config, 0, sizeof(config));
|
||||
config.channels = channel;
|
||||
config.rate = 48000; // TODO: 部分USB MIC仅支持48k,暂时固定采集为48k
|
||||
config.period_size = 512;
|
||||
config.period_size = 120;
|
||||
config.period_count = 4;
|
||||
config.format = PCM_FORMAT_S16_LE;
|
||||
config.start_threshold = 0;
|
||||
@@ -123,6 +124,7 @@ void alsa_cap_start(unsigned int card, unsigned int device, float Volume, int ch
|
||||
}
|
||||
free(buffer);
|
||||
pcm_close(pcm);
|
||||
printf("Total frames captured: %u\n", total_frames_read);
|
||||
}
|
||||
|
||||
void alsa_close_cap()
|
||||
|
||||
@@ -105,7 +105,12 @@ private:
|
||||
|
||||
void _cap_stop()
|
||||
{
|
||||
#if (defined(CONFIG_AX_620E_MSP_ENABLED) || defined(CONFIG_AX_620Q_MSP_ENABLED)) && !defined(CONFIG_AXCL_ENABLED)
|
||||
ax_close_cap();
|
||||
|
||||
#else
|
||||
alsa_close_cap();
|
||||
#endif
|
||||
if (audio_cap_thread_) {
|
||||
audio_cap_thread_->join();
|
||||
audio_cap_thread_.reset();
|
||||
|
||||
Reference in New Issue
Block a user