2016-05-20 6 views
0

私のコードは動作しません。このような非常に単純です:player.play()が呼び出されたときiOSのスウィフト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{ 

     } 

    } 
} 

、音声が正常に再生することができます。 なぜplayAtTime関数が機能しないのかわかりません。 助けてください!

+0

です。私の答えは、現在の時刻を設定し、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になりますので、時間パラメータは、現在のデバイス時間プラス(秒)あなたに必要な遅延する必要があります。

アップルのドキュメントはplayAtTimeが、でもCURRENTTIME + someNumberで再生できないことがあり、いくつかの数を再生することができますが、一部にはできませんhere

関連する問題