2016-05-20 2 views
0

Мой код очень прост, как это:метод IOS Swift AVAudioPlayer playAtTime не работает

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 не работает. Пожалуйста, помогите!

+0

playAtTime не может играть даже с CURRENTTIME + someNumber, некоторое количество может играть, но некоторые из них не могут. Мой ответ: установить текущее время и вызвать play() напрямую. – BollMose

ответ

1

func playAtTime(time: NSTimeInterval) -> Bool Эта функция предназначена для воспроизведения звука некоторого времени в будущем, на основе и более deviceCurrentTime, я бы предложил попробовать:

player.playAtTime(player.currentTime + 50.0)

0

playAtTime воспроизводит звук в то время в будущее, указанное в отношении текущего времени устройства . Таким образом, параметр времени должно быть текущее время устройства плюс вашей требуется задержка (в секундах):

player.playAtTime(player.currentDeviceTime + 50) 

player.currentTime будет 0, когда инициализирует игрок, так что это не собственность для использования.

Apple, док является here

Смежные вопросы