您好,安卓系統(tǒng)的錄音想要在蘋果手機(jī)打開步驟:
10年積累的網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有岑鞏免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1、把錄音發(fā)發(fā)到電腦端。
2、用格式工廠轉(zhuǎn)換成mp3格式。
3、電腦到你的蘋果手機(jī)就可以打開了。
Android(['?ndr?id])是一個(gè)以Linux為基礎(chǔ)的半開源操作系統(tǒng),主要用于移動(dòng)設(shè)備,由Google和開放手持設(shè)備聯(lián)盟開發(fā)與領(lǐng)導(dǎo)。
Android 系統(tǒng)最初由安迪·魯賓(Andy Rubin)制作,最初主要支持手機(jī)。
2007年11月5日,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組成開放手持設(shè)備聯(lián)盟(Open Handset Alliance)來共同研發(fā)改良Android系統(tǒng)并生產(chǎn)搭載Android的智慧型手機(jī),并逐漸拓展到平板電腦及其他領(lǐng)域上。
MediaRecorder.AudioSource.CAMCORDER
設(shè)定錄音來源于同方向的相機(jī)麥克風(fēng)相同,若相機(jī)無內(nèi)置相機(jī)或無法識別,則使用預(yù)設(shè)的麥克風(fēng)
MediaRecorder.AudioSource.DEFAULT 默認(rèn)音頻源
MediaRecorder.AudioSource.MIC
設(shè)定錄音來源為主麥克風(fēng)。
MediaRecorder.AudioSource.VOICE_CALL
設(shè)定錄音來源為語音撥出的語音與對方說話的聲音
MediaRecorder.AudioSource.VOICE_COMMUNICATION
攝像頭旁邊的麥克風(fēng)
MediaRecorder.AudioSource.VOICE_DOWNLINK
下行聲音
MediaRecorder.AudioSource.VOICE_RECOGNITION
語音識別
MediaRecorder.AudioSource.VOICE_UPLINK
上行聲音
換一下聲音源試試吧
三星手機(jī)若需使用錄音機(jī)功能,請操作:應(yīng)用程序-(Samsung)-錄音機(jī)-點(diǎn)擊中間的【紅色圓點(diǎn)】,即可錄音。如需結(jié)束錄音,點(diǎn)擊白色方框圖標(biāo),系統(tǒng)會(huì)自動(dòng)保存錄音文件。
錄音文件保存在我的文件-Sounds文件夾-語音xxx,格式為M4A或3GA,也可將保存路徑更改為存儲(chǔ)卡:錄音機(jī)-菜單鍵-設(shè)定-存儲(chǔ)器:存儲(chǔ)卡。
如需退出錄音機(jī),請點(diǎn)擊返回鍵退出即可。
之前在做直播的時(shí)候需要使用到內(nèi)錄功能,比如經(jīng)??吹接螒蛑鞑ピ谥辈ネ嬗螒?,游戲的聲音不是通過MIC錄制的,而是內(nèi)錄完成的。故在此記錄一下。
相信大家都很熟悉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輸入源介紹
項(xiàng)目
介紹
權(quán)限
DEFAULT ? ?默認(rèn)。在源碼 system/media/audio/include/system/audio.h配置默認(rèn)項(xiàng) ? ?無 ?
MIC ? ?麥克風(fēng) ? ?無 ?
VOICE_UPLINK ? ?電話錄音上行線路 ? ?android.permission.CAPTURE_AUDIO_OUTPUT,系統(tǒng)權(quán)限不允許第三方app使用 ?
VOICE_DOWNLINK ? ?電話錄音下行線路 ? ?android.permission.CAPTURE_AUDIO_OUTPUT,系統(tǒng)權(quán)限不允許第三方app使用 ?
VOICE_CALL ? ?電話錄音上下線路 ? ?android.permission.CAPTURE_AUDIO_OUTPUT,系統(tǒng)權(quán)限不允許第三方app使用 ?
CAMCORDER ? ?攝像頭的麥克風(fēng) ? ?無 ?
VOICE_RECOGNITION ? ?語音識別 ? ?無 ?
VOICE_COMMUNICATION ? ?網(wǎng)絡(luò)電話 ? ?無 ?
REMOTE_SUBMIX ? ?傳輸?shù)竭h(yuǎn)程的音頻混合流。默認(rèn)情況下如何用該項(xiàng)錄音,本地?fù)P聲器或者耳機(jī)的聲音將會(huì)被截走 ? ?android.permission.CAPTURE_AUDIO_OUTPUT,系統(tǒng)權(quán)限不允許第三方app使用 ?
好了,現(xiàn)在我們知道了REMOTE_SUBMIX可以實(shí)現(xiàn)內(nèi)錄功能了。有兩點(diǎn)比較麻煩:
需要系統(tǒng)權(quán)限
會(huì)截走揚(yáng)聲器和耳機(jī)的聲音,也就是說再錄音時(shí)本地?zé)o法播放聲音
系統(tǒng)權(quán)限問題
這個(gè)對我來說比較好辦,因?yàn)槲沂侵苯釉赼ndroid設(shè)備板子上開發(fā),可以直接使用系統(tǒng)簽名編譯。首先在AndroidManifest.xml添加
android:sharedUserId="android.uid.system"
其次,
第一種方法:
adb shell 執(zhí)行:
signapk.jar platform.x509.pem platform.pk8 app-unsigned.apk signed.apk
adb push signed.apk /system/app
第二種方法:
編寫Android.mk : 設(shè)置簽名為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.flagsinclude $(BUILD_PACKAGE)include $(call all-makefiles-under,$(LOCAL_PATH))
截走揚(yáng)聲器和耳機(jī)的聲音問題
修改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);
}
意思是聲音輸出的設(shè)備添加了耳機(jī)和揚(yáng)聲器,這里可根據(jù)實(shí)際情況設(shè)置。
至此,將最開始的錄音代碼
int audioSource = MediaRecorder.AudioSource.MIC;
改成
int audioSource = MediaRecorder.AudioSource.REMOTE_SUBMIX;
就可以實(shí)現(xiàn)內(nèi)錄功能了。
br/
ps:
在不修改源碼的情況下,第三方app目前暫不知如何實(shí)現(xiàn)內(nèi)錄。
延伸閱讀
5.0以后請求Android錄屏默認(rèn)會(huì)彈出確認(rèn)框,但在系統(tǒng)app下請求就不會(huì)彈出了(具體可以去看源碼)。這也是為了谷歌為了安全考慮。
不過5.0的時(shí)候這個(gè)彈框卻是一個(gè)大漏洞,被國內(nèi)360發(fā)現(xiàn)了,給你們鏈接^_^
Android 5.0屏幕錄制漏洞