ios - 如何保存录制的音频 iOS?

标签 ios swift uitableview audio core-data

我正在开发一个应用程序,可以在其中录制音频并将其转录为文本。我正在使用 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:不需要使用第三方库来录制音频,因为您可以通过 AVAudioRecorderAVAudioPlayer(用于从 url 播放音频)轻松管理它。 简而言之,如果您正在录制音频,那么您肯定也将其并行存储!

可以引用Ravi shankar's tutorial also

引用:this so post

关于ios - 如何保存录制的音频 iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433639/

相关文章:

ios - Collection View ( Collection View ,didSelectItemAt : indexPath) - Cannot call value of non-function type 'UICollectionView

swift - 调用时未在 UIImageView 中获取二进制数据

ios - 无法使用 iOS 应用程序中的 Url 方案从 Web URL 打开 Microsoft PowerPoint iPad 应用程序中的 powerpoint 演示文稿

swift - Swift 协议(protocol)扩展中是否允许混合类/协议(protocol)类型约束?

ios - 在不知道高度的情况下在单元格内异步下载图像

ios - 将 NSData 字节转换为自定义对象

ios - 当应用程序激活时刷新 Parse.com 数据

ios - 环球银行金融电信协会 : UITableView passing all cell's data(TextField & Label) to UIViewController

ios - 如何从 json 调用评级 View 并在我的 TableView 中显示评级

ios - TableViewController部分和行