iOS Swift AVAudioPlayer playAtTime方法不起作用

时间:2016-05-20 15:48:58

标签: ios swift avaudioplayer

我的代码非常简单:

import UIKit
import AVFoundation

class VC: UIViewController {
    var player:AVAudioPlayer!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        let url = NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource("audioName", ofType: "mp3")!)
        do{
            try player = AVAudioPlayer(contentsOfURL: url)
            print("duration", player.duration)// duration 200
            player.prepareToPlay()
            player.playAtTime(50.0)
        }catch{

        }

    }
}

当调用player.play()时,音频可以正常播放。 我不知道为什么playAtTime功能不起作用。 请帮忙!

2 个答案:

答案 0 :(得分:1)

func playAtTime(time: NSTimeInterval) -> Bool 这个功能是为了在未来的某个时间播放声音,基于和大于deviceCurrentTime,我建议尝试:

player.playAtTime(player.currentTime + 50.0)

答案 1 :(得分:0)

playAtTime将来播放声音,相对于设备的当前时间指定。因此,时间参数需要是当前设备时间加上您所需的延迟(以秒为单位):

player.playAtTime(player.currentDeviceTime + 50)
初始化播放器时,

player.currentTime将为0,因此这不是要使用的属性。

Apple doc是here