iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
0

<< 接續上篇

Method


MediaRecorder

錄音器

  • MediaRecorder 的狀態圖(圖片來源為官方文件)

  • 建立 MediaRecorder 實例

    透過 MediaRecorder class 中的建構子創建實例

    MediaRecorder()

    val mediaRecorder = MediaRecorder()
    
  • setAudioSource

    設置錄音器的要錄音的音頻來源

    需在呼叫 setOutputFormat 方法之前呼叫此方法。

    setAudioSource (audio_source: Int)

    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)
    
  • setOutputFormat

    設置錄音檔要輸出的格式。

    需在呼叫 setAudioSource 方法之後、呼叫 prepare 方法之前呼叫此方法。

    setOutputFormat (output_format: Int)

    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
    
  • setAudioEncoder

    設置錄音器錄製的音頻編碼器。

    需在呼叫 setOutputFormat 方法之後、呼叫 prepare 方法之前呼叫此方法。

    setAudioEncoder (audio_encoder: Int)

    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB)
    
  • setOutputFile

    設置錄音器生成的錄音檔要輸出的路徑

    需在呼叫 setOutputFormat 方法之後、呼叫 prepare 方法之前呼叫此方法。

  • prepare

    準備錄音器

    需在設定完錄音器的種種需求(例如前面設置的 AudioSource、OutputFormat、AudioEncoder、OutputFile…等等)後,呼叫 start 方法前執行此方法。

    prepare ()

    mediaRecorder.prepare()
    
  • start

    開始錄音

    start ()

    mediaRecorder.start()
    
  • pause

    暫停錄音。

    pause ()

    暫停後可用 resume 方法恢復並繼續錄音。

  • resume

    可在呼叫 pause 方法暫停錄音後,利用此方法恢復並繼續錄音。

    resume ()

  • stop

    停止錄音。

    stop ()

    mediaRecorder.stop()
    

    停止錄音後要再次重新錄音需重新設定錄音器的種種需求(例如前面設置的 AudioSource、OutputFormat、AudioEncoder、OutputFile…等等)並呼叫
    prepare 方法。

  • reset

    將 MediaRecorder 重置 idle 狀態

    reset()

    # reset 後若要再次使用該 MediaRecorder 實例,需重新設定錄音器的種種
      需求(例如前面設置的 AudioSource、OutputFormat、AudioEncoder、
      OutputFile…等等)並調用 prepare 方法。

  • release

    釋放該 MediaRecorder 實例中的所有資源

    release ()

    # 釋放後該 MediaRecorder 實例會進入到 Released 狀態,並且沒有任何方法
      可以從 Released 狀態變回其他狀態,也就表示該實例無法再被使用。

    # 當確定 MediaRecorder 實例不會在被使用後,就應該要用 release 方法
      釋放資源,否則可能導致設備持續耗電或其他應用無法正常播放。

實作成果

錄音後彈出重新命名小視窗以及選擇檔案來播放為後來自行追加內容,
原先的實作範圍為錄音後直接將錄音檔指定給 MediaPlayer 播放。

查看詳細 Code > GitHub

tags: Android Kotlin MediaRecorder

上一篇
Android Kotlin 實作 Day 19:LittleBirdSound(上)(MediaPlayer)
系列文
英國研究顯示,連續30天用Kotlin開發Android將有益於身心健康30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言