2017-02-19 3 views
0

私はBMPlayerを使用しています。 使用時のFUNC:ラベルでshow字幕用エラーラベル表示でテストを表示するとき

bmPlayerView.playTimeDidChange = { (currentTime: TimeInterval, totalTime: TimeInterval) in 
      //   print("playTimeDidChange currentTime: \(currentTime) totalTime: \(totalTime)") 
      self.subtitleShow(currentTime: currentTime) 
     } 

func subtitleShow(currentTime: TimeInterval){ 

let millisecond = Int(currentTime * 1000) 

       for i in (clip.subtitle?.enDialog)!{ 
        if i.start <= millisecond && i.end >= millisecond { 
          subtitleLabel.text = i.text 
          return 
         } 

        } 

      } 

しかし、表示エラー:

enter image description here

くれ

+0

あなたはエラーメッセージをお読みになりますか? –

答えて

1

を助けてください、エラーメッセージが単純にメインスレッドにラベルを更新するために説明します:

bmPlayerView.playTimeDidChange = { (currentTime: TimeInterval, totalTime: TimeInterval) in 
    DispatchQueue.main.async { 
     self.subtitleShow(currentTime: currentTime) 
    } 
} 
+0

ありがとうございました – RaziPour1993

1

の場合UIを変更するには、メインスレッドから行う必要があります。 あなたが背景から、GUIを変更カントこの

bmPlayerView.playTimeDidChange = { (currentTime: TimeInterval, totalTime: TimeInterval) in 
    // print("playTimeDidChange currentTime: \(currentTime) totalTime: \(totalTime)") 
     dispatch_async(dispatch_get_main_queue()) { [weak self]() -> Void in 
        self?.subtitleShow(currentTime: currentTime) 
     } 

} 
+0

ありがとうございました 完璧でした – RaziPour1993

1

を使用することができます。あなたのためにこれを使用する必要があります

DispatchQueue.main.async(){ 
    //code 
} 
+0

ありがとうございました 完璧でした – RaziPour1993

関連する問題