簡體   English   中英

如何保存錄制的音頻iOS?

[英]How to save recorded audio iOS?

我正在開發一個應用程序,其中錄制音頻並將其轉錄為文本。 我正在使用Nuance Developers提供的Speechkit。

我要添加的功能是:

  • 將錄制的音頻文件保存到永久內存中
  • 在表格視圖中顯示音頻文件
  • 稍后加載保存的音頻文件
  • 播放音頻文件

如何將音頻文件保存到持久存儲?

這是代碼: https//gist.github.com/buildFlash/48d143217b721823ff4c3c03a925ba55

使用AVAudioRecorder錄制音頻時,必須將路徑作為存儲音頻的位置的url傳遞。 所以默認它在那個位置存儲音頻。

例如,

 var audioSession:AVAudioSession = AVAudioSession.sharedInstance()
audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
audioSession.setActive(true, error: nil)

var documents: AnyObject = NSSearchPathForDirectoriesInDomains( NSSearchPathDirectory.DocumentDirectory,  NSSearchPathDomainMask.UserDomainMask, true)[0]
var str =  documents.stringByAppendingPathComponent("myRecording1.caf")
var url = NSURL.fileURLWithPath(str as String)

var recordSettings = [AVFormatIDKey:kAudioFormatAppleIMA4,
    AVSampleRateKey:44100.0,
    AVNumberOfChannelsKey:2,AVEncoderBitRateKey:12800,
    AVLinearPCMBitDepthKey:16,
    AVEncoderAudioQualityKey:AVAudioQuality.Max.rawValue

]

println("url : \(url)")
var error: NSError?

audioRecorder = AVAudioRecorder(URL:url, settings: recordSettings, error: &error)
if let e = error {
    println(e.localizedDescription)
} else {

    audioRecorder.record()
}

因此,這里的url是存儲音頻的位置,您可以使用相同的url播放該音頻。 如果要將文件發送到服務器,可以將該文件從url或path作為data獲取。

因此,如果您正在使用第三方庫,那么請檢查它存儲音頻的位置,您可以從那里獲取它,或者它應該有一些方法來獲取它的位置。

PS:沒有必要使用第三方庫來錄制音頻,因為您可以通過AVAudioRecorderAVAudioPlayer AVAudioRecorder管理它(用於播放來自url的音頻)。 如果您正在錄制音頻,那么您肯定會並行存儲音頻!

你也可以參考Ravi shankar的教程

參考: 這個帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM