AAC 格式的 xCode 录制不起作用

Posted

技术标签:

【中文标题】AAC 格式的 xCode 录制不起作用【英文标题】:xCode recording in AAC format not working 【发布时间】:2015-05-19 17:30:43 【问题描述】:

这是我在 ios8 Swift 应用中录制音频的代码:

var fileName = "/SFRecording-" + String(recordingSequence) + ".caf"
var str =  storageLocation + fileName
var url = NSURL.fileURLWithPath(str as String)

audioSession.setCategory(AVAudioSessionCategoryRecord, error: nil)
audioSession.setActive(true, error: nil)

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

    realRecorder = AVAudioRecorder(URL:url, settings: recordSettings as [NSObject : AnyObject], error: &error)

它工作正常,但生成的CAF 文件在 Windows 系统上无用。我想以更熟悉的格式录制,例如 MP3,但由于许可问题,您无法在 iOS 中录制。

现在我想以AAC 格式录制,我已在上面的代码中将文件扩展名从.CAF 切换为.AAC,并将AVFormatIDKey:kAudioFormatAppleIMA4 中的值切换为kAudioFormatMPEG4AAC,但这些设置无法录制任何事物。我是否也想更改一些其他设置以使 AAC 录制工作?

请记住,我的目标是以易于在 mac/win/浏览器上播放的格式录制

【问题讨论】:

你试过用扩展名 .m4a 保存它吗? @Leonardo Savio Dabus:不起作用:OSStatus error 1685348671. 【参考方案1】:

我自己想通了。我必须删除以下行以使 .AAC 格式正常工作:

AVSampleRateKey:44100.0,
AVNumberOfChannelsKey:2,
AVEncoderBitRateKey:12800,
AVLinearPCMBitDepthKey:16,

【讨论】:

以上是关于AAC 格式的 xCode 录制不起作用的主要内容,如果未能解决你的问题,请参考以下文章

aac 流的 HTML5 音频播放在 type="audio/mp4" 的 iOS 11 中不起作用

OSX 上的 SOX 录制不起作用?

录制声音看起来不错,但播放不起作用

在 iOS 中使用 AVFoundation 切换相机后视频录制不起作用

科尔多瓦录制音频不起作用 Windows 10 移动版

Agora 云录制自定义布局不起作用