当前位置: 首页 > article >正文

android13 RK3588芯片,录音没有声音

针对安卓apk录音需要添加如下:

diff --git a/tinyalsa_hal/audio_hw.c b/tinyalsa_hal/audio_hw.c
index fb1471e..607ae6f 100755
--- a/tinyalsa_hal/audio_hw.c
+++ b/tinyalsa_hal/audio_hw.c
@@ -2870,6 +2870,27 @@ static void in_apply_ramp(struct stream_in *in, int16_t *buffer, size_t frames)
     in->ramp_frames -= frames;
 }

+static void record_set_volume(void* buffer, size_t bytes, int gain)
+{
+    short *pcm_data = (short *)buffer;
+    int pcm_val;
+    int i;
+
+    for(i=0; i<(bytes/2); i++) {
+        pcm_val = pcm_data[i] * gain;
+        if (pcm_val < abs(32767) ) {
+            pcm_data[i] = pcm_val;
+        }
+        else if (pcm_val > 32767) {
+            pcm_data[i] = 32767;
+        }
+        else if (pcm_val < -32767) {
+            pcm_data[i] = -32767
+        }
+    }
+}
+
 /**
  * @brief in_read
  *
@@ -2930,6 +2951,8 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer,
         bytes = frames_rd * audio_stream_in_frame_size(stream);
     }

+    if (in->device & AUDIO_DEVICE_IN_BUILTIN_MIC)
+        record_set_volume(buffer, bytes, 6);
     dump_in_data(buffer, bytes);

添加上声卡的名字:

/hardware/rockchip/audio/tinyalsa_hal$ git diff ./
diff --git a/tinyalsa_hal/audio_hw.c b/tinyalsa_hal/audio_hw.c
index 4b3b614..f5778c2 100644
--- a/tinyalsa_hal/audio_hw.c
+++ b/tinyalsa_hal/audio_hw.c

@@ -307,6 +307,7 @@ struct dev_proc_info SPEAKER_OUT_NAME[] = /* add codes& dai name here*/
     {"rockchiprt5640c", "rt5640-aif1",},
     {"rockchiprt5670c", NULL,},
     {"rockchiprt5672c", NULL,},
+    {"yourcardname", NULL,},
     {NULL, NULL}, /* Note! Must end with NULL, else will cause crash */
 };
@@ -353,6 +354,7 @@ struct dev_proc_info MIC_IN_NAME[] =
     {"rockchiprt5640c", NULL,},
     {"rockchiprt5670c", NULL,},
     {"rockchiprt5672c", NULL,},
+    {"yourcardname", NULL,},
     {NULL, NULL}, /* Note! Must end with NULL, else will cause crash */
 };

http://www.kler.cn/a/315514.html

相关文章:

  • Servlet入门 Servlet生命周期 Servlet体系结构
  • vscode远程连接服务器并启用tmux挂载进程
  • 阿里云centos7.9服务器磁盘挂载,切换服务路径
  • 阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元
  • PHP多门店医疗服务系统小程序源码
  • 向日葵软件Windows系统连接苹果系统(MacOS)的无反应问题解决办法
  • AIGC时代算法工程师的面试秘籍(第二十二式2024.9.2-9.15) |【三年面试五年模拟】
  • SVN笔记-SVN安装
  • 【Hot100】LeetCode—295. 数据流的中位数
  • 五、CAN总线
  • C++:动态内存分配(new、delete 相比 malloc、free的优势)与运算符重载
  • 线程池动态设置线程大小踩坑
  • Hadoop的安装和使用
  • 【JavaScript】数据结构之树
  • Qt 学习第十天:小项目:QListWidget的使用
  • 【基于Spring Boot的汽车租赁系统】
  • 【微信小程序】连续拍照功能实现
  • kafka 消息位移提交几种方式:消息重复消息、消息丢失的关键
  • Docker_基础初识
  • 新能源汽车知识点集萃
  • Python办公自动化教程(003):PDF的加密
  • HarmonyOS Next开发----使用XComponent自定义绘制
  • 【乐企-工具篇】有关乐企发票文件生成- OFD和PDF文件生成
  • 四、JVM原理-4.1、JVM介绍
  • vue中 <template> 与 <template lang=“jade“>的对比,哪个性能好
  • 数据结构之希尔排序