从单个按钮停止 AVAudioplayer
Stop AVAudioplayer from single button
我试图在用户点击 "Done" 按钮时停止警报声。这是我现在使用的代码。当它提到使用相同的按钮时,我找不到任何解决方案。
@objc func runTimer() {
if isTimerRunning {
cafe.time -= 1
if cafe.time <= 0 {
timer.invalidate()
let url = Bundle.main.url(forResource: "alarm_sound", withExtension: "mp3")
alarmSound = try! AVAudioPlayer(contentsOf: url!)
alarmSound.play()
if alarmSound.isPlaying {
startButton.setTitle("Done", for: .normal)
}
}
@IBAction func startButtonPressed(_ sender: Any) {
if !isTimerRunning {
navigationItem.hidesBackButton = true
isTimerRunning = true
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(runTimer), userInfo: nil, repeats: true)
print("time")
startButton.setTitle("Stop Brewing", for: .normal)
} else {
navigationItem.hidesBackButton = false
isTimerRunning = false
resetTimer()
startButton.setTitle("Start Brewing", for: .normal)
}
if startButton.currentTitle == "Done"{
alarmSound.stop()
}else{
alarmSound.play()
}
}
提前致谢!
取一个变量来检查音频是否正在播放
var playing = false
设置 playing = true
当您更改按钮文本时(完成)
并在点击事件中应用以下代码
@IBAction func startButtonPressed(_ sender: Any) {
if playing == true {
alarmSound.stop()
}else{
alarmSound.play()
}
}
我试图在用户点击 "Done" 按钮时停止警报声。这是我现在使用的代码。当它提到使用相同的按钮时,我找不到任何解决方案。
@objc func runTimer() {
if isTimerRunning {
cafe.time -= 1
if cafe.time <= 0 {
timer.invalidate()
let url = Bundle.main.url(forResource: "alarm_sound", withExtension: "mp3")
alarmSound = try! AVAudioPlayer(contentsOf: url!)
alarmSound.play()
if alarmSound.isPlaying {
startButton.setTitle("Done", for: .normal)
}
}
@IBAction func startButtonPressed(_ sender: Any) {
if !isTimerRunning {
navigationItem.hidesBackButton = true
isTimerRunning = true
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(runTimer), userInfo: nil, repeats: true)
print("time")
startButton.setTitle("Stop Brewing", for: .normal)
} else {
navigationItem.hidesBackButton = false
isTimerRunning = false
resetTimer()
startButton.setTitle("Start Brewing", for: .normal)
}
if startButton.currentTitle == "Done"{
alarmSound.stop()
}else{
alarmSound.play()
}
}
提前致谢!
取一个变量来检查音频是否正在播放
var playing = false
设置 playing = true
当您更改按钮文本时(完成)
并在点击事件中应用以下代码
@IBAction func startButtonPressed(_ sender: Any) {
if playing == true {
alarmSound.stop()
}else{
alarmSound.play()
}
}