AudioRecord-安卓API中文線上文件
結構
繼承關係
public classAudioRecord extendsObject
Java.lang.Object
android.media.AudioRecord
類概述
AudioRecord類在Java應用程式中管理音訊資源,用來記錄從平臺音訊輸入裝置產生的資料。通過AudioRecord物件來完成"pulling"(讀取)資料。應用通過以下幾個方法負責立即從AudioRecord物件讀取:read(byte[], int, int),read(short[], int, int)或read(ByteBuffer, int).無論使用哪種音訊格式,使用AudioRecord是最方便的。
在建立AudioRecord物件時,AudioRecord會初始化,並和音訊緩衝區連線,用來緩衝新的音訊資料。根據構造時指定的緩衝區大小,來決定AudioRecord能夠記錄多長的資料。從硬體裝置讀取的資料,應小於整個記錄緩衝區。
內部類
AudioRecord.OnRecordPositionUpdateListener
介面定義為:當AudioRecord收到一個由setNotificationMarkerPosition(int)設定的通知標誌,或由setPositionNotificationPeriod(int)設定的週期更新記錄的進度狀態時,回撥此介面。
常量
ERROR
表示操作失敗。
常量值: -1 (0xffffffff)
public static final intERROR_BAD_VALUE
表示使用了一個不合理的值導致的失敗。
常量值: -2 (0xfffffffe)
public static final intERROR_INVALID_OPERATION
表示不恰當的方法導致的失敗。
常量值: -3 (0xfffffffd)
public static final intRECORDSTATE_RECORDING
指示AudioRecord錄製狀態為“正在錄製”。
常量值: 3 (0x00000003)
public static final intRECORDSTATE_STOPPED
指示AudioRecord錄製狀態為“不在錄製”。
常量值: 1 (0x00000001)
public static final intSTATE_INITIALIZED
指示AudioRecord準備就緒。
常量值: 1 (0x00000001)
public static final intSTATE_UNINITIALIZED
指示AudioRecord狀態沒有初始化成功。
常量值: 0 (0x00000000)
public static final intSUCCESS
表示操作成功。
常量值: 0 (0x00000000)
建構函式
publicAudioRecord(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
類建構函式。
引數
audioSource錄製源。請見MediaRecorder.AudioSource錄製源定義。
sampleRateInHz預設取樣率,單位Hz。44100Hz是當前唯一能保證在所有裝置上工作的取樣率,在一些裝置上還有22050, 16000或11025。
channelConfig描述音訊通道設定。請見CHANNEL_IN_MONO和CHANNEL_IN_STEREO。CHANNEL_IN_MONO保證能在所有裝置上工作。
audioFormat 音訊資料保證支援此格式。請見ENCODING_PCM_16BIT和ENCODING_PCM_8BIT。
bufferSizeInBytes在錄製過程中,音訊資料寫入緩衝區的總數(位元組)。從緩衝區讀取的新音訊資料總會小於此值。getMinBufferSize(int, int, int)返回AudioRecord例項建立成功後的最小緩衝區。設定的值比getMinBufferSize()還小則會導致初始化失敗。
異常
IllegalArgumentException
公共方法
getAudioFormat
返回設定的音訊資料格式。請見ENCODING_PCM_16BIT和ENCODING_PCM_8BIT。
getAudioSource
返回音訊錄製源。
參見
MediaRecorder.AudioSource
getChannelConfiguration
返回設定的頻道設定。請見CHANNEL_IN_MONO
和CHANNEL_IN_STEREO
。
getChannelCount
返回設定的頻道數目。
getMinBufferSize
返回成功建立AudioRecord物件所需要的最小緩衝區大小。注意:這個大小並不保證在負荷下的流暢錄製,應根據預期的頻率來選擇更高的值,AudioRecord例項在推送新資料時使用此值。
引數
sampleRateInHz預設取樣率,單位Hz。
channelConfig描述音訊通道設定。
請見CHANNEL_IN_MONO
和CHANNEL_IN_STEREO
。
audioFormat音訊資料保證支援此格式。參見ENCODING_PCM_16BIT
。
返回值
如果硬體不支援錄製引數,或輸入了一個無效的引數,則返回ERROR_BAD_VALUE,如果硬體查詢到輸出屬性沒有實現,或最小緩衝區用byte表示,則返回ERROR。
參見
更多資訊請見有效的設定引數
getNotificationMarkerPosition
返回通知,標記框架中的位置。
getPositionNotificationPeriod
返回通知,更新框架中的時間位置。
getRecordingState
返回AudioRecord例項的錄製狀態。
參見
RECORDSTATE_STOPPED
RECORDSTATE_RECORDING
getSampleRate
返回設定的音訊資料樣本取樣率,單位Hz。
getState
返回AudioRecord例項的狀態。這點非常有用,用在AudioRecord例項建立成功後,檢查初始化屬性。它能肯定請求到了合適的硬體資源。
參見
STATE_INITIALIZED
STATE_UNINITIALIZED
read
從音訊硬體錄製緩衝區讀取資料。
引數
audioData寫入的音訊錄製資料。
offsetInShorts目標陣列audioData的起始偏移量。
sizeInShorts請求讀取的資料大小。
返回值
返回short型資料,表示讀取到的資料,如果物件屬性沒有初始化,則返回ERROR_INVALID_OPERATION
,如果引數不能解析成有效的資料或索引,則返回ERROR_BAD_VALUE
。返回數值不會超過sizeInShorts。
read
從音訊硬體錄製緩衝區讀取資料。
引數
audioData寫入的音訊錄製資料。
offsetInBytesaudioData的起始偏移值,單位byte。
sizeInBytes讀取的最大位元組數。
返回值
讀入緩衝區的總byte數,如果物件屬性沒有初始化,則返回ERROR_INVALID_OPERATION
,如果引數不能解析成有效的資料或索引,則返回ERROR_BAD_VALUE
。讀取的總byte數不會超過sizeInBytes。
read
從音訊硬體錄製緩衝區讀取資料,直接複製到指定緩衝區。如果audioBuffer不是直接的緩衝區,此方法總是返回0。
引數
audioBuffer儲存寫入音訊錄製資料的緩衝區。
sizeInBytes請求的最大位元組數。
返回值
讀入緩衝區的總byte數,如果物件屬性沒有初始化,則返回ERROR_INVALID_OPERATION
,如果引數不能解析成有效的資料或索引,則返回ERROR_BAD_VALUE
。讀取的總byte數不會超過sizeInBytes。
release
釋放本地AudioRecord資源。物件不能經常使用此方法,而且在呼叫release()後,必須設定引用為null。
setNotificationMarkerPosition
如果設定了setRecordPositionUpdateListener(OnRecordPositionUpdateListener)
或setRecordPositionUpdateListener(OnRecordPositionUpdateListener,
Handler)
,則通知監聽者設定位置標記。
引數
markerInFrames在框架中快速標記位置。
返回值
返回錯誤或成功程式碼,請見SUCCESS
、ERROR_BAD_VALUE
、ERROR_INVALID_OPERATION
。
setPositionNotificationPeriod
如果設定了setRecordPositionUpdateListener(OnRecordPositionUpdateListener)
或setRecordPositionUpdateListener(OnRecordPositionUpdateListener,
Handler)
,則通知監聽者設定時間標記。
引數
markerInFrames在框架中快速更新時間標記。
返回值
返回錯誤或成功程式碼,請見SUCCESS
、ERROR_INVALID_OPERATION。
public voidsetRecordPositionUpdateListener(AudioRecord.OnRecordPositionUpdateListener listener, Handler handler)
當之前設定的標誌已經成立,或者週期錄製位置更新時,設定處理監聽者。使用此方法來將Handler和別的執行緒聯絡起來,來接收AudioRecord事件,比建立AudioTrack例項更好一些。
引數
handler用來接收事件通知訊息。
public voidsetRecordPositionUpdateListener(AudioRecord.OnRecordPositionUpdateListener listener)
當之前設定的標誌已經成立,或者週期錄製位置更新時,設定處理監聽者。
startRecording
AudioRecord例項開始進行錄製。
異常
IllegalStateException
受保護方法
protected voidfinalize()
通知VM回收此物件記憶體。此方法只能用在執行的應用程式沒有任何執行緒再使用此物件,來告訴垃圾回收器回收此物件。
此方法用於釋放系統資源,由垃圾回收器清除此物件。預設沒有實現,由VM來決定,但子類根據需要可重寫finalize()。在執行期間,呼叫此方法可能會立即丟擲未定義異常,但是可以忽略。
注意:VM保證物件可以一次或多次呼叫finalize(),但並不保證finalize()會馬上執行。例如,物件B的finalize()可能延遲執行,等待物件A的finalize()延遲迴收A的記憶體。為了安全起見,請看ReferenceQueue,它提供了更多地控制VM的垃圾回收。
AudioRecord.OnRecordPositionUpdateListener
版本:Android 3.1 r1
結構
繼承關係
public static interfaceAudioRecord.OnRecordPositionUpdateListener
android.media.AudioRecord.OnRecordPositionUpdateListener
類概述
介面定義為:當AudioRecord收到一個由setNotificationMarkerPosition(int)設定的通知標誌,或由setPositionNotificationPeriod(int)設定的週期更新記錄的進度狀態時,回撥此介面。
公共方法
public abstract voidonMarkerReached(AudioRecord recorder)
回撥監聽器,通知監聽器已經到達之前設定的標記位置。
public abstract voidonPeriodicNotification(AudioRecord recorder)
按照一定的週期,通知監聽器,指定的記錄已經就緒。
相關推薦
AudioRecord-安卓API中文線上文件
結構 繼承關係 public classAudioRecord extendsObject Java.lang.Object android.media.AudioRecord 類概述 AudioRecord類在Java應用程式中管理音訊資源,用來記錄從平臺音訊輸入裝置產生的資料。
Spring Boot整合swagger2,搭建Restful API線上文件
Swagger,中文“拽”的意思,它是一個強大的線上API文件的框架,目前它的版本是2.x,所以稱為“swagger2”。swagger2提供了線上文件的查閱和測試功能。利用Swagger2很容易構建RESTf
6.3.2 TWS API v9.72 線上文件 ——修改訂單【翻譯】
Modifying Orders Modification of an API order can be done if the API client is connected to a session of TWS with the same usernam
6.3.1 TWS API v9.72 線上文件 ——訂單管理/替換訂單【翻譯】
Order Management(訂單管理) · Placing Orders · Modifying Orders · Cancelling Orders · Retrieving currently active o
Spring Boot 使用Swagger2構建RESTful風格的API線上文件 & 專案總結
之前做的專案中前後端完全分離,前端為嵌在手機app中的H5,後端需求限定了語言為Java,而且所給的時間非常少。 於是能夠快速搭建配置部署的Spring Boot專案就成了不二之選,加上Swagger2能夠方便的幫助我們構建出功能強大的線上介面文件,方便測試人
Swagger UI 3.2.1釋出,API線上文件生成利器
Swagger UI 3.2.1 已釋出,這是一款 API 線上文件生成和除錯工具。更新內容如下:Feature: OAS3 API 定義可控制 Try-It-Out 請求的 Accept header (via #3669)Bugfix: 模型屬性現在按定義的順序顯示 (v
請教一下安卓手機免費閱讀軟件如何去下載呢
手機免費閱讀軟件 眾所周知,現在在我們的生活中,手機為主,各種軟件應接不暇,我們該如何選擇成了首要的任務,我們也不想每種都去試試,每種都去用用的。那麽下面就讓我告訴你們在pdf閱讀器中怎麽去選擇吧! 輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最好的PDF閱讀軟件。適用於
安卓讀寫INI文件
form home bsp and onf fig count nil nal 安卓讀寫INI文件 uses System.IoUtils procedure TForm1.Button1Click(Sender: TObject);var IniFile:TIniF
安卓工作室 android studio文件和代碼模板,以及漢化出錯問題
bottom dialog res getconf ring util etc eap tco 安卓工作室 android studio文件和代碼模板,以及漢化出錯問題 作者:韓夢飛沙 Author:han_meng_fei_sha 郵箱:[email p
安卓如何將TXT文件寫到特定路徑
特定 寫入 etc target get 目錄 canonical 應用程序 ora 其實就一個方法,就不貼所有代碼了。 /** * 寫入文件方法 * @param content */ public static void
安卓編程資源文件string中對占位符的使用詳解
cnblogs ava 留言 舉例 image 獲取字符串 取字符 _for 技術 這裏將為你詳細介紹占位符的使用,將其學以致用,可以達到簡化布局文件,減少字符串資源量。 1、在資源文件中的使用。 打開資源文件中的strings.xml文件,進行編輯。如下圖
xamarin 安卓輸出中文錯誤 亂碼解決
col png alt utf 信息 OS pan family 亂碼 在編譯設置附加參數 -J-Duser.language=en 這個錯誤信息是來自javac 編譯產生的 而中文亂碼問題是 GBK 和UTF8 的問題 解決的辦法就是讓j
文庫網站開發,文庫網站定製,仿百度線上文件網站建設
專業定製仿百度文庫網站系統,文庫網站系統原始碼,文庫網站建設開發,支援電腦版+手機版+微信版+小程式版+APP版,由10年的技術團隊專業定製,需要的朋友可以聯絡我們。 網站採用:PHP+MySQL+thinkPHP框架(可定製) 支援doc、docx 、ppt、 pptx、 xls、 xls
Wabacus結合PDF.js實現線上文件預覽
首先,我們需要了解一下什麼是線上預覽,能夠實現文件線上預覽的工具有很多,簡單舉一兩個例子: OpenOffice 該工具是實現了真正意義上的文件線上預覽列印,因為它支援Office全部型別,包括圖片在內。在預覽的過程中,需要SWFTools將檔案轉換Adobe Flash檔案
Google Play上架舊版安卓API設計的APP計劃
谷歌對於安卓碎片化的現狀非常不滿,這不僅僅影響到 Android 的版本升級,新功能推廣,對於使用者安全也有很大的威脅,由於老版本 Android 已經失去維護,它們沒辦法接收到新的安全更新,很容易被攻擊。 谷歌當然也在每個 Android 版本中推出了新的安全功能,但某些功能只能被針對新版本設計的
絕對實用教程:如何在PhalApi定製自己的線上文件模板?
絕對實用教程:如何在PhalApi定製自己的線上文件模板? PhalApi官方的線上文件,預設長這樣: 雖然有線上文件可以使用,但在實際情況下,考慮到專案需
安卓API指南之Fragment回顧
本系列的文章全部為學習摘要,不偏重各種細節展示,更多的是安卓體系重要節點的羅列,並適時加入少量自己的理解分析,以便能快速的回顧安卓體系結構和那些重要的技術點。 片段Fragment必須始終嵌入在 Activity 中,其生命週期直接受宿主 Activity 生命週期的影
安卓API指南之Activity回顧
本系列的文章全部為學習摘要,不偏重各種細節展示,更多的是安卓體系重要節點的羅列,並適時加入少量自己的理解分析,以便能快速的回顧安卓體系結構和那些重要的技術點。 每個 Activity 都會獲得一個用於繪製其使用者介面的視窗。視窗通常會充滿螢幕,但也可小於螢幕並浮動在其他
安卓API指南之Intent 和 Intent 過濾器
本系列的文章全部為學習摘要,不偏重各種細節展示,更多的是安卓體系重要節點的羅列,並適時加入少量自己的理解分析,以便能快速的回顧安卓體系結構和那些重要的技術點。 Intent 是一個訊息傳遞物件,您可以使用它從其他應用元件請求操作。儘管 Intent 可以通過多種方式促進
安卓API指南之應用基礎知識簡介
本系列的文章全部為學習摘要,不偏重各種細節展示,更多的是安卓體系重要節點的羅列,並適時加入少量自己的理解分析,以便能快速的回顧安卓體系結構和那些重要的技術點。 安卓apk檔案安裝到裝置後,成為裝置中的一個應用,每個應用都在其自己的 Linux 程序內執行,每個程序都具有