我尝试使用 MPMoviePlayerController 播放一个视频,它加载正常,但 5 秒后就中断了。我找到了这篇文章,但它并不真正适用于 swift。
MPMoviePlayerController 在 5 秒后停止播放视频 https://stackoverflow.com/questions/22219227/mpmovieplayercontroller-stops-playing-the-video-after-5s
这是我的代码。
import MediaPlayer
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var moviePlayer: MPMoviePlayerController?
let url = NSURL(string: "http://path/to/video.m3u8")
moviePlayer = MPMoviePlayerController(contentURL: url)
if let player = moviePlayer {
player.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
player.view.sizeToFit()
player.scalingMode = MPMovieScalingMode.None
player.movieSourceType = MPMovieSourceType.Streaming
//player.repeatMode = MPMovieRepeatMode.One
player.play()
self.view.addSubview(player.view)
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "metadataUpdated",
name: MPMoviePlayerTimedMetadataUpdatedNotification,
object: nil)
}
}
你可以吗moviePlayer
超出范围了吗?您是否尝试过将其设为成员变量?
moviePlayer
是一个局部变量viewDidLoad
,所以一旦该函数完成,我看不出有任何理由不释放你的玩家。
如果您将其设为类的变量,则其生命周期将延长以匹配您的类的生命周期。
就像是
class ViewController: UIViewController {
var player: MPMoviePlayerController?
override func viewDidLoad() {
// ...
self.player = MPMoviePlayerController(contentURL: url) // won't go out of scope at end of viewDidLoad()
// ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)