⑴ 有什麼軟體可以錄制安卓華為手機內部播放的聲音,不要錄音到外部環境的聲音
有什麼軟體可以錄制安卓華為手機內部播放的聲音,不要錄音到外部環境的聲音?之前在做直播的時候需要使用到內錄功能,比如經常看到游戲主播在直播玩游戲,游戲的聲音不是通過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
上行聲音
換一下聲音源試試吧