gpt4 book ai didi

ios - 如何节省音频时间?

转载 作者:行者123 更新时间:2023-12-03 02:28:26 25 4
gpt4 key购买 nike

我有 AVAudioPlayer。在第一个 session 中(当用户暂停音频时)我想保存我的音轨时间和持续时间。并在下一个 session 中开始播放保存的时间(如在 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
}

最佳答案

您可以使用 NSUserDefaults 在多个应用启动时保存信息。

当用户单击暂停按钮时,您可以将 AudioSession 的耗时和持续时间保存到 NSUserDefaults,如下所示:

func pauseClick()
{
if audioPlayer.isPlaying
{
UserDefaults.standard.set(player.currentTime, forKey: "ElapsedDuration")
UserDefaults.standard.set(player.duration, forKey: "TotalDuration")
UserDefaults.standard.synchronize()
audioPlayer.pause();
}
}

每当您开始下一个 session 时,只需通过调用这些方法从 userDefaults 获取信息。
func setUpNewAudioPlayer()
{
let player:AVAudioPlayer = AVAudioPlayer()
//before setting current time, make sure you set URL for player
player.currentTime = self.getElapsedDuration()
}

func getTotalDuration() -> (TimeInterval)
{
let timeInterval = UserDefaults.standard.value(forKey: "TotalDuration")
return timeInterval != nil ? timeInterval as! TimeInterval : 0
}

func getElapsedDuration() -> (TimeInterval)
{
let timeInterval = UserDefaults.standard.value(forKey: "ElapsedDuration")
return timeInterval != nil ? timeInterval as! TimeInterval : 0
}

这会工作!

关于ios - 如何节省音频时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com