在Swift中从服务器播放video文件

我正试图使用​​Swift从服务器播放video。

我已经导入了MediaPlayer框架,这里是我的代码:

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 } } 

当我在模拟器中运行时,我只会得到一个黑盒子,但不pipe在哪里尝试加载video,都不会播放video。

UPDATE

这是当前的代码

 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秒的video!

解决了:

 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超出了范围。 通过像@ Victor-Sigler这样在viewDidLoad之外声明它,你可以防止黑屏问题的发生。