在 XCODE 8 Swift 3 中为倒数计时器添加音调

Posted

技术标签:

【中文标题】在 XCODE 8 Swift 3 中为倒数计时器添加音调【英文标题】:Add tone to Countdown Timer in XCODE 8 Swift 3 【发布时间】:2017-02-14 01:54:57 【问题描述】:

我是编码新手。我正在尝试学习 ios 开发,并且我创建了一个简单的倒数计时器,它使用滑块来选择以秒为单位的时间量。我想为倒计时的最后 9 秒添加一个音调。我知道如何添加音频文件,但我“不知道”如何在计时器的最后 9 秒添加倒计时音。

@IBAction func startBtnTapped(_ sender: Any) 
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.counter), userInfo: nil, repeats: true)

    SoundPlayer4.play()

    //Hide Start and Slider Buttons
    startBtn.isHidden = true
    sliderCtrl.isHidden = true
    stopBtn.isHidden = false



@IBAction func stopBtnTapped(_ sender: Any) 
    timer.invalidate()
    seconds = 180
    sliderCtrl.setValue(180, animated: true)
    timerLbl.text = "180"

    SoundPlayer3.play()

    //Show Start and Slider Buttons
    sliderCtrl.isHidden = false
    startBtn.isHidden = false
    stopBtn.isHidden = true


@IBAction func sliderCrtlUsed(_ sender: UISlider) 
    seconds = Int(sender.value)
    timerLbl.text = String(seconds)


func counter()
    seconds -= 1
    timerLbl.text = String(seconds)

    if (seconds == 0)
        timer.invalidate()

        //Show Start and Slider Buttons
        startBtn.isHidden = false
        sliderCtrl.isHidden = false
        stopBtn.isHidden = true

        //Play Audio
        SoundPlayer1.play()
    

那么任何人都可以帮我为我的项目添加倒计时音吗? 谢谢

【问题讨论】:

【参考方案1】:

将此代码放入counter函数中:

if seconds < 10 

    var AudioURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Dog bark", ofType: "mp3")!)
    var AudioPlayer = AVAudioPlayer()

    do        
        AudioPlayer = try AVAudioPlayer(contentsOfURL: AudioURL)
     catch _ as NSError 
        fatalError()
    

    AudioPlayer.play()

然后把文件放在这里:

就是这样!

你可以阅读更多关于这个问题here。

【讨论】:

谢谢!我不得不对代码进行一些编辑,但效果很好。

以上是关于在 XCODE 8 Swift 3 中为倒数计时器添加音调的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Rxjs Observable 和 Async Pipe 在 Angular 4 中为每日重复事件创建倒数计时器

错误的指令错误 Swift 3 和 XCode 8

如何使用倒数计时器停止游戏 - iOS [SWIFT] -

Xcode Swift 3:计时器和 Segue 视图控制器错误

Swift:如何使用计时器每秒(或更短)更新标签?

从现有 Xcode 项目中为 Swift 包管理器导出 Package.swift