我正在开发一个应用程序,可以在其中录制音频并将其转录为文本。我正在使用 Nuance Developers 提供的 Speechkit。
我添加的功能是:
- 将录制的音频文件保存到持久内存中
- 在表格 View 中显示音频文件
- 稍后加载保存的音频文件
- 播放音频文件
如何将音频文件保存到持久存储?
这是代码: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 或路径获取该文件作为 data
。
因此,如果您使用的是第三方库,请检查它存储音频的位置,您可以从那里获取它,或者它应该有一些方法来获取它的位置。
PS:不需要使用第三方库来录制音频,因为您可以通过 AVAudioRecorder
和 AVAudioPlayer
(用于从 url 播放音频)轻松管理它。
简而言之,如果您正在录制音频,那么您肯定也将其并行存储!
可以引用Ravi shankar's tutorial also
引用:this so post
关于ios - 如何保存录制的音频 iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433639/