android13 RK3588芯片,录音没有声音

发布于:2024-09-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

针对安卓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 */
 };

网站公告

今日签到

点亮在社区的每一天
去签到