Воспроизведение видеофайла с сервера в Swift
Я пытаюсь воспроизвести видео с сервера с помощью Swift.
я импортировал медиаплеер framework, вот мой код:
import UIKit
import MediaPlayer
class VideoViewController: UIViewController {
   override func viewDidLoad() {
        super.viewDidLoad()
        var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")        
        var moviePlayer = MPMoviePlayerController(contentURL: url)
        moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)        
        self.view.addSubview(moviePlayer.view)
        moviePlayer.fullscreen = true        
        moviePlayer.controlStyle = MPMovieControlStyle.Embedded        
   }
}
Я получаю только черный ящик, когда я бегу в симуляторе, но видео не играет, независимо от того, где я пытаюсь загрузить видео.
обновление
здесь код
var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")
var moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)        
moviePlayer.movieSourceType = MPMovieSourceType.File
self.view.addSubview(moviePlayer.view)        
moviePlayer.prepareToPlay()
moviePlayer.play()
этот код интересно играет ~2 секунды видео, прежде чем снова черный!
4 ответов
решила:
import UIKit
import MediaPlayer
class VideoViewController: UIViewController {
   var moviePlayer:MPMoviePlayerController!
   override func viewDidLoad() {
      super.viewDidLoad()
      let url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")
      moviePlayer = MPMoviePlayerController(contentURL: url)
      moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)
      self.view.addSubview(moviePlayer.view)
      moviePlayer.fullscreen = true
      moviePlayer.controlStyle = MPMovieControlStyle.Embedded
   }
}
import AVKit
import AVFoundation
class VideoController: UIViewController
override func viewDidLoad()
    {
       let videoURL = NSURL(string: "VideoUr")
        let player = AVPlayer(url: videoURL! as URL)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }
    }
У меня просто были те же проблемы..
MPMoviePlayerController перестает играть через 5 секунд-Swift
проблема в том, что ваш var moviePlayer выходит за рамки. Объявив его вне viewDidLoad, как @Victor-Sigler сделал выше, вы предотвратите проблему с черным экраном.
импорт библиотеки:
import AVKit
import AVFoundation
import MediaPlayer
import AudioToolbox   
набор delegaete такой
AVPlayerViewControllerDelegate
Wrtie очень код, где вы хотите играть как действие кнопки:
let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
    let player = AVPlayer(url: videoURL!)
    let playervc = AVPlayerViewController()
    playervc.delegate = self
    playervc.player = player
    self.present(playervc, animated: true) {
        playervc.player!.play()
    }
100% рабочий и проверить
