如何保存录制的音频iOS?

Posted

技术标签:

【中文标题】如何保存录制的音频iOS?【英文标题】:How to save recorded audio iOS? 【发布时间】:2016-09-11 07:00:15 【问题描述】:

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

我要添加的功能是:

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

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

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

【问题讨论】:

【参考方案1】:

当您使用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 或路径中获取该文件 data

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

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

您可以参考Ravi shankar's tutorial also

参考:this so post

【讨论】:

以上是关于如何保存录制的音频iOS?的主要内容,如果未能解决你的问题,请参考以下文章

xcode:如何在使用 AVFoundation 录制音频后保存音频文件

如何在 QT C++ 中录制和保存音频?

在 Xamarin.Forms 中录制语音后如何保存音频文件

如何更改录制音频的音高并在后台保存?

如何录制音频并将其保存到沙盒?

如何录制/保存 iPhone 应用程序中正在播放的音频?