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 */
};