Linux下使用alsa 您所在的位置:网站首页 音频文件封装 Linux下使用alsa

Linux下使用alsa

#Linux下使用alsa| 来源: 网络整理| 查看: 265

一、环境介绍

系统: 虚拟机运行ubuntu18.04 (64位)

声卡: 电脑自带声卡

二、安装alsa-lib库

参考文章: https://blog.csdn.net/xiaolong1126626497/article/details/104916277

三、参考代码:从声卡获取PCM数据,实现录音功能

下面代码在命令行通过gcc编译运行: 读取声卡数据,保存为文件,结束录音可以按下Ctrl+C即可结束。

/* 进行音频采集,采集pcm数据并直接保存pcm数据 音频参数: 声道数: 1 采样位数: 16bit、LE格式 采样频率: 44100Hz 运行示例: $ gcc linux_pcm_save.c -lasound $ ./a.out hw:0 123.pcm */ #include #include #include #include #define AudioFormat SND_PCM_FORMAT_S16_LE //指定音频的格式,其他常用格式:SND_PCM_FORMAT_U24_LE、SND_PCM_FORMAT_U32_LE #define AUDIO_CHANNEL_SET 1 //1单声道 2立体声 #define AUDIO_RATE_SET 44100 //音频采样率,常用的采样频率: 44100Hz 、16000HZ、8000HZ、48000HZ、22050HZ FILE *pcm_data_file=NULL; int run_flag=0; void exit_sighandler(int sig) { run_flag=1; } int main(int argc, char *argv[]) { int i; int err; char *buffer; int buffer_frames = 1024; unsigned int rate = AUDIO_RATE_SET; snd_pcm_t *capture_handle;// 一个指向PCM设备的句柄 snd_pcm_hw_params_t *hw_params; //此结构包含有关硬件的信息,可用于指定PCM流的配置 /*注册信号捕获退出接口*/ signal(2,exit_sighandler); /*PCM的采样格式在pcm.h文件里有定义*/ snd_pcm_format_t format=AudioFormat; // 采样位数:16bit、LE格式 /*打开音频采集卡硬件,并判断硬件是否打开成功,若打开失败则打印出错误提示*/ // SND_PCM_STREAM_PLAYBACK 输出流 // SND_PCM_STREAM_CAPTURE 输入流 if ((err = snd_pcm_open (&capture_handle, argv[1],SND_PCM_STREAM_CAPTURE,0))


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有