小编Kha*_*led的帖子

在Linux中注册声卡驱动程序

我想写一个虚拟声卡驱动程序,linux系统将使用它来进行音频播放和捕获.驱动程序应使用缓冲区进行音频数据读/写.我写了以下基本驱动程序:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sound.h>

#include <linux/sysctl.h>
#include <linux/device.h>

#include <linux/slab.h> /* kmalloc() */
#include <linux/gfp.h>
#include <asm/uaccess.h> /* copy_from/to_user */
#include <linux/major.h>
#include <linux/fs.h>
#include <linux/pci.h>
#include <linux/err.h>

#include <sound/core.h>

static char* mod_name = "prosip";

MODULE_LICENSE("GPL");
MODULE_VERSION("0.0.1111");
MODULE_AUTHOR("DD-DDD");
MODULE_DESCRIPTION("proSip Virtual Sound Card");

//
static int ver_major = 133;

static int ver_minor = 3;

//
static int buffer_size = 0;
static char* buffer;
static int read_count = 0;

/* Declaration of memory.c functions */
int prosip_open(struct inode *inode, …
Run Code Online (Sandbox Code Playgroud)

linux audio driver linux-kernel

5
推荐指数
1
解决办法
2255
查看次数

MediaRecorder.AudioSource 中 VOICE_COMMUNICATION 和 MIC 的区别

我正在使用媒体录音机在 android 中使用VOICE_COMMUNICATION&MIC模式记录通话。

RECORD_SOURCE = MediaRecorder.AudioSource.VOICE_COMMUNICATION; //RECORD_SOURCE = MediaRecorder.AudioSource.MIC; iAudioRecorder = new AudioRecord(RECORD_SOURCE, NATIVE_SAMPLE_RATE, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, RECORD_BUF_UNIT);

我看到MIC录制的音频数据比VOICE_COMMUNICATION某些设备的增益大得多 (大约 2/3 倍)。此外,所捕获的背景音乐VOICE_COMMUNICATION也不如MIC.

为什么这两种录音模式的音频质量(如增益、响应能力)不同?

android audio-recording android-mediarecorder android-audiorecord

5
推荐指数
1
解决办法
9706
查看次数