iOS 如何保存录制的音频?

Ary*_*rma 4 audio core-data uitableview ios swift

我正在开发一个应用程序,其中音频被录制并转录为文本。我正在使用 Nuance Developers 提供的 Speechkit。

我要添加的功能是:

  • 将录制的音频文件保存到永久内存
  • 在表格视图中显示音频文件
  • 稍后加载保存的音频文件
  • 播放音频文件

如何将音频文件保存到持久存储?

这是代码:https://gist.github.com/buildFlash/48d143217b721823ff4c3c03a925ba55

Lio*_*ion 6

当您录制音频时,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()
}
Run Code Online (Sandbox Code Playgroud)

因此,这url是存储音频的位置,您可以使用该位置url来播放该音频。您可以从 url 或路径获取该文件,就像data您想将其发送到服务器一样。

因此,如果您使用第三方库,请检查它存储音频的位置,您可以从那里获取它,或者它应该有某种方法来获取它的位置。

PS:无需使用第三方库来录制音频,因为您可以通过AVAudioRecorder和轻松管理它AVAudioPlayer(用于从 url 播放音频)。简而言之,如果您正在录制音频,那么您肯定也可以并行存储它!

您也可以参考Ravi shankar 的教程

参考:这个帖子