當前位置:首頁 » 安卓系統 » android獲取聲音

android獲取聲音

發布時間: 2023-03-29 08:46:14

『壹』 Android音頻播放

最近需要在Android的客戶端中使用PCM聲音播放和錄制,簡單學習了一下。有不正確的地方還請指出。

首先有幾個概念需要了解一下:采樣頻率、聲道數、采樣位數。

采樣頻率一般是sample rate, 代表的是數字化音頻時每秒采樣的次數。常見的有44.1KHz(CD品質)、48KHz等。

這個很好理解,單聲道Mono就是聲音從一個方向傳出來;雙聲道Stereo也叫立體聲,聲音是從兩個方向傳來。通常的流行音樂中,仔細聽能發現每個聲道可能側重不同的樂曲聲部,比如左聲道吉他,右聲道鋼琴,人聲似乎兩個聲道都有,聽起來就像站在中間一樣。(這里沒有考證,隨便舉例)

每一個采樣都是一個數據點,采樣位數是指這個數據點使用了幾位來記錄。AudioTrack類只支持8位和16位的PCM音頻。8位就是2的8次方,即256個值;而16位則是2的16次方,有65536個值。

這個在音頻的編解碼中還是比較常用的。在PCM格式中,1秒鍾音頻的數據大小是SampleRate×Channel×Bit/8,單位是byte位元組。由於PCM本身沒有音頻幀的概念,所以通過這個公式就能計算出任意時長音頻的大小,或者得到任意大小音頻的時長。如果規定1個音頻幀是「每個聲道256個采樣」,雙聲道下就是512個采樣,那麼1幀的數據量就是256×Channel×Bit/8,同理可以推斷出1秒鍾有多少音頻幀等等。音頻幀的概念在各種編解碼中各有不同,但計算公式大同小異,這里不展開。

Android中音頻的播放使用的是AudioTrack類,具體用法非常簡單。
首先設置buffer大小。AudioTrack播放時需要先寫入buffer,如果這個buffer沒有寫滿,那麼這部分是不會播放的。所以buffer不能設置太小,這樣會導致播放不連貫;而buffer也不能設置太小,這樣不間斷寫入會消耗許多CPU資源。AudioTrack自帶了getMinBufferSize方法可以給出一個最小buffer,一般用這個值就可以。getMinBufferSize方法三個參數分別是sample rate、channel和bit。

設置完buffer size就可以實例化一個AudioTrack。其中第一個參數streamType是指不同的音頻流類型,包括STREAM_MUSIC、STREAM_ALARM、STREAM_VOICE_CALL、STREAM_RING等,是Android對不同音頻的分類。中間三個參數很好理解,第四個是buffer size,剛剛計算出來了。最後一個參數mode有兩種:MODE_STREAM和MODE_STATIC。前者是以流形式播放,後者則是一次性全部寫入然後播放。

調用實例的play()方法就可以開始播放了。不過播放得要有數據吧?要填寫數據就要用到write()方法。write方法中第一個參數是一個byte[]類型,是要寫入的數據源,可以是從文件流中讀取出來的;第二個參數offset是初始位移,即從source的哪個位置開始;第三個參數則是輸入長度。

當write方法寫滿一個AudioTrack的buffer時,就會有聲音播放出來了。
當播放完成後記得要把AudioTrack停止並釋放。

『貳』 Android音頻採集

最近項目中需要實現手機採集聲音頻率實現設備律動的效果,整理了下Android與聲音相關的知識。

根據聲音振幅、頻率獲取顏色值,通過藍牙mesh發送指令給燈改變其顏色值。

Android聲音採集相關Api

快速傅里葉變換公式

Mesh網發送rgb值相關指令

人主觀感覺聲音的大小(音量),振幅與人離聲源的距離決定,振幅越大,離聲源的距離越小,響度越大。

LP= 20×lgP/P0

LP:聲壓級(db)

P:聲壓(Pa)

P0:基準聲壓:2*10-5Pa,該值是對800HZ聲音人耳剛能聽到的最低聲壓。

聲音的高低,由頻率決定,頻率謹辯越高,音調越高。

頻率是每秒經吵洞過一給定點的聲波數量,單位赫茲(Hz)

人耳能聽到20~20kHz的聲音。

音品,波形決定聲音的音色。

MediaRecorder:基於文件錄音,已集成錄音、編碼、壓縮

把模擬信號數字化的過程

采樣頻率越高,紅色間隔越密集,記錄音頻所用數據量越大,音頻質量越高。

采樣定理(奈奎斯特理論):當采樣頻率大於信號中最高頻率的2倍時,采樣後的數字信號完整地保留原始信號中的信息。人耳能聽到20~20kHz的聲音,為了保證聲音不失真,采樣頻率應在40kHz以上。

目前44100Hz是唯一可以保證兼容所有Android手機的采樣率。

指將模擬信號分成幾個等級,量化精度越高,聲音質量越好,單位Bit。

CD標准量化精度16Bit,DVD標准量化精度24Bit。

16Bit可以保證兼容所有Android手機。

音頻採集、播放可以疊加,可以同時從多個音頻源採集聲音,例如:單聲道/雙聲道。

即采樣時間,例如20ms一幀代表20ms為單位的數據量為一幀音頻。

一幀音頻幀大小 = 采樣率 x 位寬 x 采樣時間 x 通道數

例:采樣率8000,位寬8,通道2,采樣間隔20ms

(8000 * 8/8 *2)/ (1000/20 ) = 320Byte //1位元組 = 8 bits

對audioData進行快速傅里葉變化,時域->頻域的變化,可以將信號的頻譜提取出來。

傅立葉變換就是多個祥碰缺正餘弦波疊加可以用來近似任何一個原始的周期函數,它實質是是頻域函數和時域函數的轉換。

Visualizer:檢索當前正在播放的音頻,對其進行編碼

以下基於AudioRecord採集的音頻數據後進行快速傅里葉變換得到頻率值

『叄』 如何獲取和設置android系統鈴聲和音量大小

建議進行以下操作:
1、打開手機設定-聲音-音量-媒體/鈴聲/通知/系統-調節大小觀察使用
2、更換其他鈴聲嘗試
3、若是調整後手機音量依舊很小,請備份數據,恢復出廠設置嘗試。
若問題依然存在,建議攜帶上購機發票、包修卡和手機到當地的三星服務中心,由專業的工程師幫檢測。

『肆』 android 設置整個app的通知欄Notification 的聲音和震動用什麼方法

設置安卓手機通知欄提示音的方法如下。

1、以OPPO手機為例,點擊打開手機設置,如圖。

『伍』 安卓手機投屏問題,為什麼沒有聲音

    隨著時代的迅速發展,幾乎人人都用上了智能設備,而安卓手機的市場尤為廣泛。安卓功能很多,但是投屏時會出現只有圖像沒有聲音的情況,這是為什麼呢?今天我就帶大家簡單了解一下,安卓手機投屏沒有聲音的內在原因以及解決方案。

    安卓(Android)系統是Google公司於2007年11月5日發布,基於Linux平台的 開源 手機操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成。

    安卓系統是一個許可權分立操作系統,每個應用都以唯一系統識別身份運行(Linux用戶ID與群組ID)。系統各部分也分別使用各自獨立的識別方式。所以Linux就是以這種方式,將應用與系統,應用與應    用隔離開。系統更多的安全功能通過許可權機制提供。許可權可以限制某個特定進程的特定操作,也可以限制每個URI許可權對特定數據段的訪問

    Android安全架構的核心設計思想,就是在默認設置下,所有應用都沒有許可權對其他應用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據(聯系人或電子郵件),讀寫其他應用文件,訪問網路或阻止設備待機等。而手機的最重要功能是語音通信,安卓系統充分考慮了手機語音的安全性,所以不允許其它應用獲取手機的語音數據,從而保證通話不被截取。

    也正是由於這個原因,當我們的鏡像程序在手機端運行時,被視為第三方不安全的應用程序,從而無法獲取手機聲音,導致鏡像無聲。

那如何解決安卓設備投屏無聲音的問題呢? 圖飛飛品牌 的無線鏡像軟體「投屏專家」就很好的解決了這個問題。

安卓手機的聲音有兩種情況:

(1)播放網路視頻產生的聲音

對於這種情況,飛圖採取把網路視頻的URL地址直接發送給接收端,讓接收端在線播放網路視頻,從而既解決了聲音傳輸問題,更重要的是,可以直接播放網路視頻,不會產生延時或二次損傷畫質的問題,流暢度和清晰度都有了比較大的保證。

(2)手機播放本地視頻產生聲音

要把播放本地視頻產生的聲音傳輸給鏡像接收端,飛圖是通過電影模式實現。也就是把本地的視頻文件,通過網路直接傳輸給接收端,並在接收端直接播放視頻文件,從而聲音和圖像都不受影響,無損播放。

今天帶大家了解了安卓手機投屏無聲音的原因與解決方案,快去試試吧~

『陸』 安卓手機外放沒有聲音是什麼原因

當揚聲器不能在Android設備上運行時如何解決此問題

請按照以下步驟找出問題的原因:

01 打開揚聲器。如果您在通話過程中聽不到對方的任何人,請檢查揚聲器是否已啟用。如果已激活,則揚聲器圖標為綠色或突出顯示。如果不是,請點按揚聲器圖標,使其亮起以啟用它。

13 檢查您的設備手冊。如果上述技巧不起作用,請查閱設備的文檔或製造商的網站以獲取更具體的指導。

熱點內容
怎麼看內存卡配置 發布:2025-07-05 12:29:19 瀏覽:269
訪問學者英文個人簡歷 發布:2025-07-05 12:29:17 瀏覽:818
1970linux 發布:2025-07-05 12:12:43 瀏覽:108
解壓挑刺 發布:2025-07-05 12:12:12 瀏覽:536
rarlinux壓縮 發布:2025-07-05 12:08:52 瀏覽:398
手機點菜app怎麼連接電腦伺服器 發布:2025-07-05 11:13:05 瀏覽:943
配置控制台干什麼用的 發布:2025-07-05 10:54:51 瀏覽:962
連信從哪裡改登錄密碼 發布:2025-07-05 10:54:12 瀏覽:399
怎麼修改查詢密碼 發布:2025-07-05 10:49:48 瀏覽:967
matlab文件存儲 發布:2025-07-05 10:40:46 瀏覽:85