我试图让用户长时间录制音频。
那么我想要实现什么目标?
开始录制将停止任何其他媒体,如音乐
如果AVAudioRecorder被中断,它会暂停。
当中断结束或用户手动恢复录制时,AVAudioRecorder将停止所有其他媒体并恢复并继续录制。
我的问题是当AVAudioRecorder被中断并恢复几次时,它会丢失重新编码的数据,例如,当我回放时记录30秒时,其持续时间变为10秒。 令人惊讶的是,这只会在它被中断时发生,但如果用户暂停并重新开始多次重新编码,则没问题。
有什么建议吗?
感谢。
func startRecording() {
if !audioRecord!.recording {
do {
secondCounter = 0
try self.audioSession?.setCategory(AVAudioSessionCategoryRecord)
try self.audioSession?.setActive(true)
self.stopAudioPlayer()
self.playButton.enabled = false
self.playButtonInPlayingMode(false)
self.hideAudioContainer(true)
audioRecord?.prepareToRecord()
audioRecord?.meteringEnabled = true
audioRecord!.record()
self.micButton.tag = recording_state;
self.monitorRecoderTime()
} catch {
}
}
}
func pauseRecording() {
if audioRecord != nil && audioRecord!.recording {
self.recordingPauseMode()
audioRecord?.pause()
}
}
func recordingPauseMode() {
self.micButton.setImage(UIImage(named: "micro.png"), forState: .Normal);
self.micButton.tag = pause_state;
self.stopMonitoring()
}
func resumeRecoding() {
if audioRecord != nil && !audioRecord!.recording {
self.micButton.setImage(UIImage(named: "micro_filled.png"), forState: .Normal);
self.micButton.tag = recording_state;
if audioRecord!.record() {
print("Recording Resumed")
}else{
print("Unable to resume recording")
}
self.monitorRecoderTime()
}
}