android回声
A. 怎么安卓手机用唱吧没有混响和回声效果的呢
这是因为安卓的硬件问题,声音芯片没有提供实时混响的功能。
B. 安卓发短信带回声效果
安卓发短信的话,他是手机店的音量关系,如果你不想要回声,效果话可以在设置里面关闭
C. 有人用过android 4.1的新API里的AcousticEchoCanceler 回声消除吗
下面简单的备忘下AcousticEchoCanceler的使用方法:
1)判断当前机型是否支持AEC,需要注意这里的检查不一定准确。
public static boolean isDeviceSupport()
{
return AcousticEchoCanceler.isAvailable();
}
2)初始化并使能AEC。
private AcousticEchoCanceler canceler;
public boolean initAEC(int audioSession)
{
if (canceler != null)
{
return false;
}
canceler = AcousticEchoCanceler.create(audioSession);
canceler.setEnabled(true);
return canceler.getEnabled();
}
3)使能/去使能AEC。
public boolean setAECEnabled(boolean enable)
{
if (null == canceler)
{
return false;
}
canceler.setEnabled(enable);
return canceler.getEnabled();
}
4)释放AEC。
public boolean release()
{
if (null == canceler)
{
return false;
}
canceler.setEnabled(false);
canceler.release();
return true;
}
AcousticEchoCanceler的初始化需要一个sessionid,下面简单的备忘下上层的调用方式:
1)初始化AudioRecord的时候需要处理第一个参数。
if (chkNewDev())
{
audioRecord = new AudioRecord(MediaRecorder.AudioSource.VOICE_COMMUNICATION, frequency, channelIN, audioEncoding, tmpSize);
}else
{
audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelIN, audioEncoding, tmpSize);
}
2)初始化好audioRecord之后,就可以通过
audioRecord.getAudioSessionId()
获取到相应的sessionid。
3)初始化AudioTrack时,也需要额外的处理sessionid。
if (chkNewDev() && audioRecord != null)
{
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, frequency, channelOUT, audioEncoding, tmpSize, AudioTrack.MODE_STREAM,audioRecord.getAudioSessionId());
}
else
{
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, frequency, channelOUT, audioEncoding, tmpSize, AudioTrack.MODE_STREAM);
}
另外,由于API的限制,需要考虑机型不匹配的情况:
public static boolean chkNewDev()
{
return android.os.Build.VERSION.SDK_INT >= 16;
}
权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
总结:
1)android新版本增加的API AcousticEchoCanceler 可以非常快速的开发出符合VOIP性质的回声消除程序。但是考虑到各种机型适配,仍然需要第三方的回声消除程序。这里主要推荐两个:webrtc里面的AEC/AECM,speex。
作者成功的在项目中使用了webrtc里面的回声消除,感觉效果还可以。
2)作者编写的上述代码也只是根据官方的介绍编写的,由于资料较少,不能保证代码的正确性。
转载
D. 安卓手机,echo回声如何上传本地音乐!
应该是文件保存的路径和软件读取的路径不一样,可以选择路径或者移动文件到相对应的文件夹
E. 求助android 处理 双通道实时对讲 消除回声
问题
我们在做语音实时对讲的时候往往会碰到一个瓶颈,这个瓶颈就是在不戴耳机的情况下会有很大的回音,本文就讨论如何解决。
解决方式:
(1)其实有做了同一时间只有一端能够说或者听,类似于对讲机,这种虽然是实时的,但是体验不好,还不如微信;
(2)两边戴上耳机,这样也没回音,但是也不可能一直带着耳机吧,而且有时还不只一个人听呢;
(3)将这个回应消除,这个也是本文的重点。
3.speex回音消除
做回音消除有硬件消除和软件消除,这里采用硬件消除,通过三方开源库speex消除,对于speex可以查看下相关资料,我也是略懂,只是会用它而已;
speex不仅仅可以做回音消除,它本身也是一个音频的编解码库,但是它只能解码自己编码的音频文件,但这在做语音通信已经足够了。
经过实际测试,在不开外音的情况下可以消除百分之八十以上的回音,但是开外音的话还是有回音,毕竟是软件消除,不可能那么干净的;
F. android webrtc 回音消除使用audiotrack 合适吗
android webrtc 回音消除使用audiotrack合适。推荐即构科技,产品可选:实时音视频、实时语音、互动直播、IM即时通讯。【点击免费试用,0成本启动】
WebRTC的代码结构布局清晰,在“webrtc\moles\audio_processing\aee”目录下可以找到几个用于回声处理GIPS的AEC源文件。然后主要查找每个AEC源文件所关联的WebRTC代码,就可找出回声处理模块所需要WebRTC相关的源代码文件和头文件,这样就可以将AEC从WebRTC中提取出来单独使用。为方便使用,将需要这些代码分成2个模块,通用音频处理模块webRTC_AUDIO和GIPS-AEC模块。WebRTC—AUDIO模块中包含AEC源文件运行所依赖的WebRTC音频处理相关源文件及头文件,而GIPS—AEC模块则是WebRTC中专门用于回声处理GIPS的AEC源文件。GIPS-AEC模块以WebRTC_AUDIO模块为基础,对回声进行处理。
想要了解更多关于这方面的相关信息,推荐咨询ZEGO即构科技。ZEGO即构科技是一家全球云通讯服务商,专注自研音视频引擎,服务覆盖全球,链接 5 亿终端用户。ZEGO即构科技覆盖212个国家/地区,全球用户体验毫秒级互动,日均通话时长达30亿分钟,跻身云通讯行业头部,全方位行业解决方案,满足百余个业务场景需要,服务客户4000家,70%泛娱乐/在线教育客户的选择。
G. 手机有回音怎么回事
如果您使用的是华为手机,手机通话时有回声,可以通过以下方法排查操作:
一、通话时听到自己的回声
1. 可能是对方手机问题,建议对方切换通话方式(“手持”切“免提”,或“免提”切“手持”)后尝试。
2. 可能是网络问题,建议开启VoLTE功能尝试,或者到信号好的地方重新拨打。
二、通话时对方听到回声
1. 可能是本端手机问题,请注意看下是否存在麦克风被遮挡情况,如被手指挡住可能会导致回音,通过调整手持握姿可解决。
2. 可能是网络问题,建议开启VoLTE功能尝试,或者到信号好的地方重新拨打。
如果以上操作后仍无法解决,建议您备份重要数据(微信/QQ等应用需单独备份),携带购机凭证前往华为客户服务中心检测。