Android录音,录制其他App播放的声音
从Android10(SDK 29)版本开始,可以设置录音App的源为其他App,这样就可以录制其他App播放的声音
此方案有以下注意几点
设置了源为其他App后,就不能设置默认源为麦克风了
录音的线程只能在Service里,这个Service只能是前台Service
具体实现步骤
首先需要在被录音的App的AndroidManifest里面的application元素里设置属性 android:allowAudioPlaybackCapture=”true”,这样才可以让其他App来录音此App
通过 MediaProjectionManager 获取Intent
// 下面两行代码在onCreate里面,用于在启动时请求MediaProjectionManager
MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE);
startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), 2000);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK && requestCode == 2000) {
if (data != null) {
code = resultCode;
dataIt = data;
}
}
}
// MediaProjectionPermissionActivity.java
private Intent getMediaProjectionIntent(int uid, String packageName)
throws RemoteException {
IMediaProjection projection = mService.createPr