⑴ 有什么软件可以录制安卓华为手机内部播放的声音,不要录音到外部环境的声音
有什么软件可以录制安卓华为手机内部播放的声音,不要录音到外部环境的声音?之前在做直播的时候需要使用到内录功能,比如经常看到游戏主播在直播玩游戏,游戏的声音不是通过MIC录制的,而是内录完成的。故在此记录一下。
相信大家都很熟悉android如果录音的了:
int frequency = 44100;
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
int minBufferSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
int audioSource = MediaRecorder.AudioSource.MIC;
AudioRecord audioRecord = new AudioRecord(audioSource, frequency,
channelConfiguration, audioEncoding, minBufferSize);
audioRecord.startRecording();
...
AudioSource输入源介绍
项目 介绍 权限
DEFAULT 默认。在源码 system/media/audio/include/system/audio.h配置默认项 无
MIC 麦克风 无
VOICE_UPLINK 电话录音上行线路 android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用
VOICE_DOWNLINK 电话录音下行线路 android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用
VOICE_CALL 电话录音上下线路 android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用
CAMCORDER 摄像头的麦克风 无
VOICE_RECOGNITION 语音识别 无
VOICE_COMMUNICATION 网络电话 无
REMOTE_SUBMIX 传输到远程的音频混合流。默认情况下如何用该项录音,本地扬声器或者耳机的声音将会被截走 android.permission.CAPTURE_AUDIO_OUTPUT,系统权限不允许第三方app使用
好了,现在我们知道了REMOTE_SUBMIX可以实现内录功能了。有两点比较麻烦:
需要系统权限
会截走扬声器和耳机的声音,也就是说再录音时本地无法播放声音
系统权限问题
这个对我来说比较好办,因为我是直接在android设备板子上开发,可以直接使用系统签名编译。首先在AndroidManifest.xml添加
android:sharedUserId="android.uid.system"
其次,
第一种方法:
adb shell 执行:
signapk.jar platform.x509.pem platform.pk8 app-unsigned.apk signed.apk
adb push signed.apk /system/app
第二种方法:
编写Android.mk : 设置签名为platform
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := YourApp
LOCAL_CERTIFICATE := platform
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
截走扬声器和耳机的声音问题
修改framework下av/services/audiopolicy/AudioPolicyManager.cpp
audio_devices_t AudioPolicyManager::getDeviceForStrategy(routing_strategy strategy,
bool fromCache)
getDeviceForStrategy方法下找到
if (mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {
device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;
}
修改为
if (mAvailableOutputDevices.getDevice(AUDIO_DEVICE_OUT_REMOTE_SUBMIX, String8("0")) != 0) {
device2 = availableOutputDeviceTypes & AUDIO_DEVICE_OUT_REMOTE_SUBMIX;
device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_WIRED_HEADPHONE);
device2 |= (availableOutputDeviceTypes & AUDIO_DEVICE_OUT_SPEAKER);
}
意思是声音输出的设备添加了耳机和扬声器,这里可根据实际情况设置。
至此,将最开始的录音代码
int audioSource = MediaRecorder.AudioSource.MIC;
改成
int audioSource = MediaRecorder.AudioSource.REMOTE_SUBMIX;
就可以实现内录功能了。
<br/>
ps:
在不修改源码的情况下,第三方app目前暂不知如何实现内录。
延伸阅读
5.0以后请求Android录屏默认会弹出确认框,但在系统app下请求就不会弹出了(具体可以去看源码)。这也是为了谷歌为了安全考虑。
不过5.0的时候这个弹框却是一个大漏洞,被国内360发现了,给你们链接^_^
Android 5.0屏幕录制漏洞
原文链接:
⑵ android怎样录制系统内部声音
通过API 19新加的MediaRecorder.AudioSource.REMOTE_SUBMIX参数可以让系统App录制系统内置的声音,也就是扬声器的声音。下面是一个巨简单的例子来示例如何通过AudioRecord配合REMOTE_SUBMIX参数进行录制。
1. 编译apk
MainActivity.java:
packagecom.example.audiotest;
importjava.io.FileOutputStream;
importjava.io.IOException;
importandroid.app.Activity;
importandroid.media.AudioFormat;
importandroid.media.AudioRecord;
importandroid.media.MediaRecorder;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
{
privatestaticStringTAG="JZJ";
AudioRecordmRecord=null;
booleanmReqStop=false;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
(newThread(){
@Override
publicvoidrun(){
recordAndPlay();
}
}).start();
}
privatefinalintkSampleRate=44100;
privatefinalintkChannelMode=AudioFormat.CHANNEL_IN_STEREO;
privatefinalintkEncodeFormat=AudioFormat.ENCODING_PCM_16BIT;
privatevoidinit(){
intminBufferSize=AudioRecord.getMinBufferSize(kSampleRate,kChannelMode,
kEncodeFormat);
mRecord=newAudioRecord(MediaRecorder.AudioSource.REMOTE_SUBMIX,
kSampleRate,kChannelMode,kEncodeFormat,minBufferSize*2);
}
privatefinalintkFrameSize=2048;
privateStringfilePath="/sdcard/voice.pcm";
privatevoidrecordAndPlay(){
FileOutputStreamos=null;
mRecord.startRecording();
try{
os=newFileOutputStream(filePath);
byte[]buffer=newbyte[kFrameSize];
intnum=0;
while(!mReqStop){
num=mRecord.read(buffer,0,kFrameSize);
Log.d(TAG,"buffer="+buffer.toString()+",num="+num);
os.write(buffer,0,num);
}
Log.d(TAG,"exitloop");
os.close();
}catch(IOExceptione){
e.printStackTrace();
Log.e(TAG,"DumpPCMtofilefailed");
}
mRecord.stop();
mRecord.release();
mRecord=null;
Log.d(TAG,"cleanup");
}
publicvoidstop(Viewview){
mReqStop=true;
ButtonstopBtn=(Button)findViewById(R.id.stopBtn);
stopBtn.setText("Stopped");
stopBtn.setEnabled(false);
}
}
⑶ 安卓手机录音软件哪个好
安卓手机录音软件哪个好?如果你是想找记事软件,推荐你使用敬业签,因为它就是一款可以录音的手机记事便签,支持我们创建语音便签,所以我们可以通过录音的方式记录重要事项或内容,具体操作步骤如下:
1、进入主界面后直接长按下方的“+”按钮,然后在出现的菜单中选择“语音便签”,进入录音页面;
2、接着在该页面,先点击红色的按钮开始录音,然后再点击同一按钮便可结束录音,中途我们还能点击暂停按钮,选择暂停录制;
3、结束录音后,点击录音页面右上角的“上传”按钮,页面便会跳转至便签新增页面,接着我们就可以在输入框内填写关于这条音频的文字说明,随后再点击“保存”即可。
⑷ 手机如何录屏并且录制声音
这里以小米8手机为例,手机录屏并且录制声音步骤如下:
1、打开MIUI系统桌面上的“系统工具”文件夹,找到并点击“屏幕录制”APP图标。
屏幕录制可以直接在下拉菜单中找到,大部分安卓手机都可以在下拉菜单中找到屏幕录制功能,没找到的话,可以自己在下拉菜单中进行添加。打开手机,在下拉菜单中找到屏幕录制,开启录制环境音选项,然后开始录制。
⑸ 怎么做到安卓手机声音内录
关于录制手机内的声音,给你分享下我的经验,用手机录屏或录音时手机靠自带的麦克风录音,所以会把环境音录进去,之前的做法都是直接把外音开到最大,然后录屏,这样录虽然能录进去,但是声音会减弱,而且会录进去很多噪声。非常的不爽,这个问题如果要通过软件层面解决,就必须ROOT手机,这样做非常麻烦,而且不安全。
为了解决这个问题,有些手机从系统层面做了改动,可以实现内录,但是目前大部分手机并没有具备内录的功能。
我做影视剪辑的,有时候要录制些网课和素材,之前我一直被这个问题困扰,在网上搜了大量的资料,后来在有个帖子里看到目前一种叫做”黑科技内录“的手机配件,可以解决这类内录的问题。
后来也问过很多做软件的朋友,都没办法从手机软件层面解决这个问题。饱受无法内录困扰的我,二话不说,直接从网上陶来一个这样的配件。买来后试了下,的确可以实现内录,至此,我的手机在录屏或者录音的时候,终于可以内录了。如果你觉得有用,可以给我点个赞,采纳我的回答奥!
⑹ 录内部声音的安卓录屏软件
直接屏幕录制就可以,在手机最上方有屏幕录制,点就可以录制视频,把声音开最大录制
⑺ 安卓手机怎么内录声音
关于录制手机内的声音,给你分享下我的经验,用手机录屏或录音时手机靠自带的麦克风录音,所以会把环境音录进去,之前的做法都是直接把外音开到最大,然后录屏,这样录虽然能录进去,但是声音会减弱,而且会录进去很多噪声。非常的不爽,这个问题如果要通过软件层面解决,就必须ROOT手机,这样做非常麻烦,而且不安全。
为了解决这个问题,有些手机从系统层面做了改动,可以实现内录,但是目前大部分手机并没有具备内录的功能。
我做影视剪辑的,有时候要录制些网课和素材,之前我一直被这个问题困扰,在网上搜了大量的资料,后来在有个帖子里看到目前一种叫做”黑科技内录“的手机配件,可以解决这类内录的问题。
后来也问过很多做软件的朋友,都没办法从手机软件层面解决这个问题。饱受无法内录困扰的我,二话不说,直接从网上陶来一个这样的配件。买来后试了下,的确可以实现内录,至此,我的手机在录屏或者录音的时候,终于可以内录了。如果你觉得有用,可以给我点个赞,采纳我的回答奥!
⑻ 安卓系统怎么录制内部声音
除了魅族手机以外,vivo OPPO小米的话,都可以在录音设置里面或者说录制设置里面找到是否录制内屏声音,如果你是MIUI系统的话可以这样做,当然如果你是魅族手机,你也想要录制内部声音的话,建议刷刷机刷成MIUI系统。
⑼ 安卓手机录屏如何设置只录内置声音
安卓手机录屏设置只录内置声音方法;以红米手机操作为例:
1、首先我们解锁手机屏幕,在桌面上点击“系统工具”的文件夹图标。
⑽ 想请教个问题,关于Android音频录制问题
MediaRecorder.AudioSource.CAMCORDER
设定录音来源于同方向的相机麦克风相同,若相机无内置相机或无法识别,则使用预设的麦克风
MediaRecorder.AudioSource.DEFAULT 默认音频源
MediaRecorder.AudioSource.MIC
设定录音来源为主麦克风。
MediaRecorder.AudioSource.VOICE_CALL
设定录音来源为语音拨出的语音与对方说话的声音
MediaRecorder.AudioSource.VOICE_COMMUNICATION
摄像头旁边的麦克风
MediaRecorder.AudioSource.VOICE_DOWNLINK
下行声音
MediaRecorder.AudioSource.VOICE_RECOGNITION
语音识别
MediaRecorder.AudioSource.VOICE_UPLINK
上行声音
换一下声音源试试吧