Android(安卓)9.0实现系统内录(只录制系统声音)
16lz
2021-01-26
Android中可以通过使用MediaRecorder.AudioSource.REMOTE_SUBMIX来实现系统声音的录制,这个属性只有系统应用能够使用,而且这个属性会截掉耳机和扬声器的声音,让我们听不到手机中播放音乐或者视频时的声音,而录制结束后会发现播放录制好的文件是有这些声音的。这显然不是我们想要的效果,这个时候我们可以通过修改底层C++代码来打开。这个方法仅使用于系统定制开发,三方APP就没有办法了。
源码文件路径:
frameworks\av\services\audiopolicy\enginedefault\src\Engine.cpp
在Engine.cpp中找到:
if (strategy != STRATEGY_SONIFICATION) { // no sonification on remote submix (e.g. WFD) if (availableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) { device2 = availableOutputDevices.types() & AUDIO_DEVICE_OUT_REMOTE_SUBMIX; }}
改为:
if (strategy != STRATEGY_SONIFICATION) { // no sonification on remote submix (e.g. WFD) if (availableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) { device2 = availableOutputDevices.types() & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;device2 |= (availableOutputDevices.types() & AUDIO_DEVICE_OUT_WIRED_HEADPHONE); device2 |= (availableOutputDevices.types() & AUDIO_DEVICE_OUT_SPEAKER); }}
这样,在使用 REMOTE_SUBMIX 这种模式录制音频时我们就能听到手机播放音视频等的声音了。
更多相关文章
- Android之增长的数字(仿支付宝资产数字)
- android 利用 MediaPlayer 类播放音乐
- Android(安卓)Studio学写英语听写APP(音乐播放器)一
- Lottie动画在Android和Ios开发中的应用——Android篇
- Android(安卓)Camera增加自定义图像处理并录制MP4
- Android(安卓)Frame动画概述及示例
- Android(安卓)Studio音乐播放器
- Android中Notification的framework层讲解
- 如何用Android(安卓)webview播放HTML5 video标签