ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BES LINEIN 讲解

2021-06-06 10:58:18  阅读:325  来源: 互联网

标签:STREAM 死机 模式 BT LINEIN 增益 讲解 BES


  下面来说下LINEIN 模式,主要是用来给自己做个备份,方便以后自己查看等

 

我们都知道LINEIN模式有进过蓝牙芯片处理和直接输出两种情况。

      1、进过蓝牙芯片:这种情况是需要我们在软件上去做处理了,下面会说应怎么在代码里实现

      2、直接输出:这种情况是通过3.5mm的座子直接将音频信号输出到喇叭,中间不需要做处理,所以软件上就不需要做什么处理了。这种相对于软件来说是最简单的,软件上不需要做任何操作,只需硬件上实现就好。

 

一般在BES的代码中都有LINEIN 模式相关的代码,所该部分的代码都在 AUDIO_LINEIN 宏中定义着的。所以想使用LINEIN功能的时候就需要将宏打开。

嘿嘿,在打开AUDIO_LINEIN 宏的时候你会发现在 mk 文件中没有定义该宏

  这样的情况我们应该怎么办呢,他原始代码都没有定义这个宏,那会不会是不支持LINEIN 的功能呢?

不要慌,我们可以自己添加一个宏定义。就像是自己添加一个宏定义一样,如下图:

添加好宏定义之后就是配置好LINEIN的输入了。

讲到输入我要提个醒,不能单端输入,LINEIN的左右声道需要分别对应一个mic+作为输入。否则会出现问题。下面说下有哪些问题:

    1、在刚刚进入该模式的时候就会出现死机,死机的log就不放上来了。下面截图看下死机的部分

  上图我们都可以看得出来,代码中已经将这里的通道是2。当然了你也可以将该部分修改为通道1,修改之后再进入该模式的时候是不会出现死机,但是会导致出现第二种问题了

2、输出的音质很差,人声基本上没有

 

好了,上面就是单端输入导致出现的问题,也就表示这LINEIN模式不能使用一个mic作为LINEIN的左右声道的输入。下面贴出正确的接线图

    现在硬件上需要注意的地方已经解决了,下面就来说下 LINEIN 的输入配置了。我们在tgt_hardware.c中可以看到LINEIN相关的配置,所以我们只需配置好输入的mic口就好

以上的这些配置好之后就可以正常的使用了,代码中不需要更改一些东西都是好的。

下面就是调用了直接调用下面的函数就使用LINEIN了

#ifdef AUDIO_LINEIN
        app_audio_manager_sendrequest(APP_BT_STREAM_MANAGER_START,BT_STREAM_LINEIN, BT_DEVICE_ID_1,MAX_RECORD_NUM);
#endif

通过上面的函数我们可以看出来,第二个参数就被我们设置成了LINEIN模式了。所以在进入这个模式之前会将BT或者USB模式下的音频通道关闭再打开LINEIN模式的音频通道。

如果我不想用LINEIN模式想用BT模式了,那么我们就需要怎么操作呢?

     首先将LINEIN模式下的通道关闭            app_audio_manager_sendrequest(APP_BT_STREAM_MANAGER_STOP,BT_STREAM_LINEIN, BT_DEVICE_ID_1,MAX_RECORD_NUM);

      然后打开BT模式下的通道
 app_audio_manager_sendrequest(APP_BT_STREAM_MANAGER_START,BT_STREAM_MEDIA, BT_DEVICE_ID_1,MAX_RECORD_NUM);

当然在切换的过程中需要注意会出现死机的情况,具体出现怎么样死机需要拿到机器调试,这里就不过多的说了。

 

注意:默认情况下LINEIN的输入增益是根据mic的增益去设置,所以使用的时候需要自己重新更改增益
增益对应的数组如下图:

 

对应的值有下图中的增益决定

   上面图中的增益也是通话中的。

 

LINEIN模式下的输入增益在哪里修改一下忘记了,只能后面做到这个功能在去找了。

 

 

 

 

 

标签:STREAM,死机,模式,BT,LINEIN,增益,讲解,BES
来源: https://blog.csdn.net/m0_52359717/article/details/117569680

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有