1. 程式人生 > >AudioRecord-安卓API中文線上文件

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_MONOCHANNEL_IN_STEREO

    getChannelCount

    返回設定的頻道數目。

    getMinBufferSize

    返回成功建立AudioRecord物件所需要的最小緩衝區大小。注意:這個大小並不保證在負荷下的流暢錄製,應根據預期的頻率來選擇更高的值,AudioRecord例項在推送新資料時使用此值。

      引數

sampleRateInHz預設取樣率,單位Hz。

channelConfig描述音訊通道設定。

請見CHANNEL_IN_MONOCHANNEL_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在框架中快速標記位置。

返回值

返回錯誤或成功程式碼,請見SUCCESSERROR_BAD_VALUEERROR_INVALID_OPERATION

    setPositionNotificationPeriod

    如果設定了setRecordPositionUpdateListener(OnRecordPositionUpdateListener)setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler),則通知監聽者設定時間標記。

引數

markerInFrames在框架中快速更新時間標記。

返回值

返回錯誤或成功程式碼,請見SUCCESSERROR_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 程序內執行,每個程序都具有