2015-03-16 3 views
0

У меня есть метод в playVideo() здесь:MPMoviePlayerController Черный экран при вызове в общей сессии

func playVideo() { 
    let url = NSURL(string: "http://mtc.cdn.vine.co/r/videos_r2/20660994A41184015287536758784_SW_WEBM_14252654515363566800065.mp4?versionId=X5uVE9shOvYpw7z7.VnePPyihEfx_uWj") 

    //let url = NSURL(string: videoUrls[videoNumber]) 
    //println(videoUrls[videoNumber]) 
    moviePlayer = MPMoviePlayerController(contentURL: url) 
    if let player = moviePlayer { 
     player.view.frame = CGRect(x: 0, y: 0, width: 300, height: 300) 
     player.view.center = self.view.center 
     player.prepareToPlay() 
     player.scalingMode = .AspectFill 
     player.controlStyle = .None 
     self.view.addSubview(player.view) 

     player.play() 
    } 
} 

Когда я непосредственно вызывать его из viewDidLoad работает без каких-либо проблем. Но когда я попытался вызвать его на общей сессии так:

 var task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { data,response,error -> Void in 

     if(error == nil) 
     { 
      var err :NSError? 
      var jsonResult : NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary! 
      var records: NSArray = (jsonResult["data"]?["records"]) as NSArray 
      for(var i=0;i<records.count;i++) 
      { 
       var strVideo = (records[i]["videoLowURL"] as String); 
       videoUrls.append(strVideo) 
      } 
     } 
     else 
     { 
      println("Error") 
     } 
    }) 
    task.resume() 

Это показывает только черный экран и нет звука или ничего.

Я знаю, что он вызывает метод playVideo(), но он не работает правильно.

В чем может быть проблема?

ответ

0

Это от верхней части головы, но обработчик завершения, вероятно, не вызывается в основной теме. Все материалы пользовательского интерфейса должны быть выполнены в основном потоке.

Отправка в основную очередь с помощью:

dispatch_async(dispatch_get_main_queue()) { 
    self.playVideo() 
} 
Смежные вопросы