A. 通過藍牙向android端app實時傳音頻怎麼實現
publicbyte[]getBytesFromFile(Filef){if(f==null){returnnull;}try{FileInputStreamstream=newFileInputStream(f);byte[]b=newbyte[(int)f.length()];stream.read(b);stream.close();returnb;}catch(IOExceptione){e.printStackTrace();}returnnull;}獲得MP3的判培byte數組,通過bluetoothsocket發送對方手機,對方手機接收後Filefile=newFile(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".MP3");=newFileOutputStream(file);fileOutputStream.write(voice);fileOutputStream.close();不過MP3文件需要轉碼,否則播放不了,你可以錄音生成個amr文件銀沖段試試鋒譽!
B. android音頻實時採集 傳輸到PC端播放
成了一個.木.馬.竅.聽.器了!!搜下,文章多的是。
這也是我的下一個目標,才學一個月,尚沒到這一步呢。
-------------------
android手機的Mic對聲音的感知
2011-11-08 11:54 5225人閱讀 評論(7) 收藏 舉報
android手機buffer圖形domainaudio
這段時間做了個有關android手機利用mic捕獲外界環境音量的小東東,多方查詢,各種研究,現在把這些東西跟童鞋們分享一下,如有不足或者差錯,還望大牛們多給意見。
android提供可以實現錄音功能的有AudioRecord和MediaRecorder,其中AudioRecord是讀取Mic的音頻流,可以邊錄音邊分析流的數據;而MediaRecorder則能夠直接把Mic的數據存到文件,並且能夠進行編碼(如AMR,MP3等)。
首先,要將你的應用加入許可權(無論你是使用AudioRecord還是MediaRecorder):
<uses-permission android:name="android.permission.RECORD_AUDIO" />
然後,分開介紹兩者的用法。
《!--AudioRecord--》
1、新建錄音采樣類,實現介面:
public class MicSensor implements AudioRecord.
2、關於AudioRecord的初始化:
public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
audioSource: 錄音源(例如:MediaRecorder.AudioSource.MIC 指定Mic為錄音源)
sampleRateInHz: 默認的采樣頻率,單位為Hz。(常用的如44100Hz、22050Hz、16000Hz、11025Hz、8000Hz,有人說44100Hz是目前保證在所有廠商的android手機上都能使用的采樣頻率,但是個人在三星i9000上使用卻不然,經測試8000Hz似乎更為靠譜)
channelConfig: 描述音頻通道設置。(在此我使用了AudioFormat.CHANNEL_CONFIGURATION_MONO)
audioFormat: 音頻數據支持格式。(這個好像跟聲道有關,16bit的脈碼調制錄音應該是所謂的雙聲道,而8bit脈碼調制錄音是單聲道。AudioFormat.ENCODING_PCM_16BIT、AudioFormat.ENCODING_PCM_8BIT)
bufferSizeInBytes: 在錄制過程中,音頻數據寫入緩沖區的總數(位元組)。 從緩沖區讀取的新音頻數據總會小於此值。 getMinBufferSize(int, int, int)返回AudioRecord 實例創建成功後的最小緩沖區。 設置的值比getMinBufferSize()還小則會導致初始化失敗。
3、初始化成功後則可啟動錄音 audioRecord.startRecording()
4、編寫線程類將錄音數據讀入緩沖區,進行分析
short[] buffer = new short[bufferSize]; //short類型對應16bit音頻數據格式,byte類型對應於8bit
audioRecord.read(buffer, 0, bufferSize); //返回值是個int類型的數據長度值
5、在此需要對buffer中的數據進行一些說明:
這樣讀取的數據是在時域下的數據,直接用於計算沒有任何實際意義。需要將時域下的數據轉化為頻域下的數據,才能訴諸於計算。
頻域(frequency domain)是指在對函數或信號進行分析時,分析其和頻率有關部份,而不是和時間有關的部份。
函數或信號可以透過一對數學的運運算元在時域及頻域之間轉換。例如傅里葉變換可以將一個時域信號轉換成在不同頻率下對應的振幅及相位,其頻譜就是時域信號在頻域下的表現,而反傅里葉變換可以將頻譜再轉換回時域的信號。
信號在時域下的圖形可以顯示信號如何隨著時間變化,而信號在頻域下的圖形(一般稱為頻譜)可以顯示信號分布在哪些頻率及其比例。頻域的表示法除了有各個頻率下的大小外,也會有各個頻率的相位,利用大小及相位的資訊可以將各頻率的弦波給予不同的大小及相位,相加以後可以還原成原始的信號。
經傅立葉變化後得到的復數數組是個二維數組,實部和虛部的平方和取對數後乘以10就大致等於我們通常表示音量的分貝了。
《!--MediaRecorder--》
相對於AudioRecord,MediaRecorder提供了更為簡單的api。
[java] view plainprint?
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
設置好mediaRecorder的各個屬性,然後通過線程調用方法 mediaRecorder.getMaxAmplitude();
得到的是瞬時的最大振幅,直接取對數然後乘以10就可以表徵分貝了。
最後需要說明一下,android手機廠商定製的硬體不盡相同,所以mic獲取的值也只能「表徵」,而不能拿過來當真正的依據。它們雖是智能手機,但也還是手機,機器人不是人!呵呵。。。
對了,每個手機mic在聲信號和電信號進行轉換時都有做過電容保護,為了其不因外界環境的過於嘈雜而易受到損壞。所以超聲波和次聲波,我們人不容易接受的聲音,手機也不會入耳的。
C. 如何解決android音視頻傳輸(流媒體)傳輸問題
android流媒體MediaRecorderrtp
想要實現視頻通話功能,獲取本機音視頻流後通過rtp進行傳輸。
在MediaRecorder類並未提供獲取實時流實現的方法,請問做過音視頻通話的朋友是怎麼實現實時獲取音視頻流的?
解決方案1:
分開獲取
視頻通過 Camera 預覽時 的數據回調函數
聲音通過 AudioRecord read
以上介紹了「android視頻通話時怎麼從攝像頭和mic實時獲取音視頻流進行傳輸?」的問題解答,希望對有需要的網友有所幫助。
D. 如何把安卓手機里的音樂導出到電腦
首先,安裝手機助手軟體,如360,QQ,網路等; 然後,將手機連接到電腦,讓軟體識別手機並安裝相應驅動程序,這個是自動完成的; 最後,軟體對手機識別完成後,就可以顯示手機里的所有圖片,音樂,視頻,文檔等,根據需要復制或剪切到電腦就可以了。 另外提醒一點,如果想使用手機助手往手機上安裝APP的話,可以打開手機的USB調試模式。根據手機的不同,打開方式有所不同,軟體會有操作引導。 USB調試模式是 Android 提供的一個用於開發工作的功能,使用該功能可在計算機和 Android 設備之間復制數據、在移動設備上安裝應用程序、讀取日誌數據等等。默認情況下,USB 調試模式是關閉的,所以需要手動打開它;USB調試用途廣泛,各種手機助手軟體行使正常功能必須開啟USB調試模式才能正常使用。只有開啟了USB調試模式,與電腦連接時才能進行下載軟體,一鍵root,備份聯系人等功能。
E. 如何向安卓設備添加音樂 3種方法來向安卓設備添加音樂
目錄方法1:使用「Google Play Music」程序1、在電腦上打開「Google Play Music」網頁。2、點擊?3、點擊上傳音樂4、點擊從電腦中選擇5、選擇音樂文件。6、選擇音樂。7、點擊打開方法2:在Windows電腦上傳輸音樂文件1、將安卓設備連接到電腦。2、打開「開始」菜單3、打開文件資源管理器4、前往音樂文件夾。5、選擇你想要添加的音樂。6、點擊主頁7、點擊復制到8、點擊選擇位置9、點擊安卓設備的名稱。10、點擊「音樂」文件夾。11、點擊復制12、斷開設備和電腦的連接。方法3:用Mac電腦傳輸音樂1、將安卓設備連接到Mac電腦。2、在Mac電腦上打開瀏覽器。3、前往安卓文件傳輸頁面。4、點擊立刻下載5、安裝安卓文件傳輸程序6、打開「Finder」。7、前往音樂文件夾。8、選擇你想要添加的音樂。9、點擊編輯10、點擊復制11、打開安卓文件傳輸程序。12、雙擊「音樂」文件夾。13、點擊編輯這篇文章將教你如何把電腦上的音樂文件添加到安卓手機或平板中。可以通過桌面版「Google Play Music」程序直接上傳到設備,也可以使用Windows或Mac電腦直接傳輸文件。
方法1:使用「Google Play Music」程序
1、在電腦上打開「Google Play Music」網頁。在電腦的瀏覽器中,前往 https://music.google.com/ 。如果你已登錄谷歌賬戶,這會直接打開你的音樂主頁。如果還未登錄谷歌賬戶,請點擊頁面右上角的登錄按鈕,然後輸入電子郵箱地址和密碼。
如果登錄了多個谷歌賬戶,請點擊頁面右上角的用戶資料圖標,從下拉菜單中選擇你想要使用的賬戶。
2、點擊?。它位於頁面的左上角。接著窗口的左側會彈出一個新窗口。
3、點擊上傳音樂。它位於彈出窗口的底部。點擊它,進入音樂上傳頁面。如果沒有設置過Google Play Music,請點擊下一步,輸入借記卡或信用卡信息,然後點擊激活。這一步不會收取任何費用,只是為了確認你居住的國家。
4、點擊從電腦中選擇。它位於頁面的底部。點擊它會打開文件資源管理器(Windows)或Finder程序(Mac電腦)。
5、選擇音樂文件。在窗口的左側點擊音樂文件所在的文件夾。你可能需要在主窗口中雙擊下一級文件夾才能找到你的音樂文件。
6、選擇音樂。點擊並拖拽滑鼠左鍵,選擇音樂文件。或是按住Ctrl(Windows電腦)或Command(Mac電腦),點擊每個音樂文件來多選文件。
7、點擊打開。它位於窗口底部。接著會將音樂上傳到「Google Play Music」。完成後,就可以在安卓設備上使用「Google Play Music」應用程序來下載音樂了。
方法2:在Windows電腦上傳輸音樂文件
1、將安卓設備連接到電腦。使用安卓充電線將設備連接到電腦的USB埠。如果安卓設備提示你選擇連接類型,請點擊屏幕上的媒體設備(MTP) 。
2、打開「開始」菜單。點擊屏幕左下角的Windows圖標。
3、打開文件資源管理器。點擊開始窗口左下角文件夾形狀的圖標。
4、前往音樂文件夾。點擊文件資源管理器左側的文件夾,打開音樂文件所在的文件夾。你可能需要雙擊多級文件夾,才能找到音樂文件。
5、選擇你想要添加的音樂。點擊並拖拽滑鼠,選中音樂文件。或者按下Ctrl鍵,點擊單個文件,來多選文件。
6、點擊主頁選項卡。它位於文件資源管理器窗口的左上角。接著會在主頁選項卡下面打開一個工具欄。
7、點擊復制到。這個文件夾形狀的圖標位於工具欄的「組織」部分。接著會出現一個下拉菜單。
8、點擊選擇位置。它位於下拉菜單的最下方。
9、點擊安卓設備的名稱。這個文件夾應該位於彈出窗口中。接著會展開設備文件夾,裡面顯示安卓設備里的文件。你可能需要滾動菜單才能看到安卓設備的名稱。
10、點擊「音樂」文件夾。它位於安卓設備展開的文件夾下。
11、點擊復制。這個按鈕位於窗口底部。接著會將選中的文件復制到安卓設備上。這個過程會花費幾分鍾時間。
12、斷開設備和電腦的連接。完成傳輸後,安全地斷開設備與電腦的連接。
方法3:用Mac電腦傳輸音樂
1、將安卓設備連接到Mac電腦。使用安卓充電線將設備連接到電腦的USB埠。如果Mac電腦上沒有USB埠,需要購買USB-C到USB-3.0的適配器。
如果安卓設備提示你選擇連接類型,請點擊屏幕上的媒體設備(MTP)。
2、在Mac電腦上打開瀏覽器。由於安卓設備不會自動同步Mac電腦,你需要下載一個官方程序來傳輸文件。
3、前往安卓文件傳輸頁面。前往 http://www.android.com/filetransfer/ 。這會打開程序下載頁面。
4、點擊立刻下載。它位於頁面中部,是一個綠色的按鈕。這會開始下載程序安裝文件。根據瀏覽器的設置,你可能需要確認下載操作或選擇下載路徑。
5、安裝安卓文件傳輸程序。雙擊DMG文件,在系統偏好設置中確認文件,然後點擊並拖拽安卓文件傳輸圖標到「應用程序」快捷方式中。
6、打開「Finder」。它位於電腦的停靠欄中,圖標是一個藍色的臉型圖案。
7、前往音樂文件夾。點擊Finder窗口左側的文件夾,打開音樂文件所在的文件夾。你可能需要雙擊多級文件夾,才能找到音樂文件。
8、選擇你想要添加的音樂。點擊並拖拽滑鼠,選中音樂文件。或者按下Command鍵,點擊單個文件,來多選文件。
9、點擊編輯。這個菜單選項位於屏幕的左上角。接著會出現下拉菜單。
10、點擊復制。它位於頂部編輯菜單。這會復制你選中的文件。
11、打開安卓文件傳輸程序。接著,你能看到安卓設備的文件夾,裡面有一個「音樂」文件,位於安卓文件傳輸窗口中。
12、雙擊「音樂」文件夾。它位於傳輸窗口的中部,點擊它打開「音樂」文件夾。
13、點擊編輯按鈕,然後點擊粘貼項目。這個按鈕位於頂部編輯下拉菜單的頂部。接著會將音樂復制到安卓設備。完成傳輸後,安全地移除設備,就可以在設備上聽音樂了。傳輸進程會花費幾分鍾。
小提示添加到安卓設備的音樂文件應該能用任意播放軟體來播放,你可以從應用程序商店中下載播放軟體。
警告「Google Play Music」賬戶中最多能存50,000首歌曲。