从虚拟设备获取音频数据(playback)
1.加载虚拟输出设备
pacmd load-module module-pipe-sink file=/tmp/output format=s16le rate=44100 channels=2
2.设置虚拟输出设备为默认输出设备
pacmd list-sinks 查看输出设备名称
pacmd set-default-sink fifo_output(虚拟输出设备名称为fifo_output)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <time.h>
#include <sys/time.h>
int dump_pcm_data(char *buf, int buf_size, FILE *fp)
{
int size = 0;
if(fp)
size = fwrite(buf, 1, buf_size, fp);
printf("write pcm size = %d.\n", size);
return size;
}
int read_date_from_fifo(char *buf, int buf_size, int fd_read)
{
int ret = 0;
if(fd_read > 0)
ret = read(fd_read, buf, buf_size

本文介绍了如何通过PulseAudio的模块化功能实现录音和放音。首先,加载虚拟输出设备,如module-pipe-sink,并将其设置为默认输出设备。然后,通过pacmd命令查看并设置虚拟输入设备,如module-pipe-source,作为默认输入设备,从而实现音频数据的记录和播放功能。
最低0.47元/天 解锁文章
1485

被折叠的 条评论
为什么被折叠?



