2017-02-19 62 views
0

我使用BMPlayer。 使用功能時:當在標籤中顯示測試時出錯

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

如果你想改變用戶界面,你必須從主線程執行。 你可以用這個

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

你不能從後臺修改gui。爲此,您需要使用

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

謝謝 那個很完美 – RaziPour1993

相關問題