私はAVAudioPlayerを持っています。最初のセッション(ユーザーがオーディオを一時停止するとき)で、オーディオトラックの経過時間と時間を保存します。そして、次のセッションで(iBooksアプリのように)保存された時間を再生し始めます。これを行う最善の方法は何ですか?オーディオ時間を保存するには?
ラベル
@IBOutlet var timeElapsed: UILabel!
@IBOutlet var timeDuration: UILabel!
@IBAction func play(sender: AnyObject) {
if !audioPlayer.isPlaying{
audioPlayer.play()
slider.maximumValue = Float(audioPlayer.duration)
slider.value = 0.0
timer = Timer(timeInterval: 0.0, target: self, selector: #selector(self.updateTime), userInfo: nil, repeats: true)
RunLoop.main.add(timer!, forMode: .commonModes)
}
func updateTime() {
let currentTime = Int(audioPlayer.currentTime)
let minutes = currentTime/60
let seconds = currentTime - minutes * 60
let durationTime = Int(audioPlayer.duration) - Int(audioPlayer.currentTime)
let minutes1 = durationTime/60
let seconds1 = durationTime - minutes1 * 60
timeElapsed.text = NSString(format: "%02d:%02d", minutes,seconds) as String
timeDuration.text = NSString(format: "-%02d:%02d", minutes1,seconds1) as String
}
問題を解決するには、オプション値をアンラッピングしている間に '予期せぬことにnilが見つかりました。 –
私は上記の最新のコードで確認した –