MPMoviePlayerController 在 5 秒后停止播放 - Swift
Posted
技术标签:
【中文标题】MPMoviePlayerController 在 5 秒后停止播放 - Swift【英文标题】:MPMoviePlayerController Stops Playing After 5 seconds - Swift 【发布时间】:2015-03-31 01:49:32 【问题描述】:我正在尝试使用 MPMoviePlayerController 播放一个视频,它可以正常加载,但 5 秒后会中断。我找到了这篇文章,但它并不真正适用于 swift。
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)
【问题讨论】:
您的视频是直播还是点播?如果没有,请使用 MPMovieSourceType.File 代替 MPMovieSourceType.Streaming。 【参考方案1】:您的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()
// ...
【讨论】:
节奏拳手非常感谢您的回复。我是自学的,还在学习。我不确定你是什么意思。您能否提供更多背景信息?我非常感谢您提供的任何智慧。 你就是男人!!!那完全奏效了。我离实现在 m3u8 视频中使用定时元数据的目标又近了一步。如果您有时间,请通过我的Other Thread 停下来。我真的很感谢你的时间。 对不起。我以为我已经这样做了。感谢您引起我的注意。再来一次。谢谢! 没问题!我会看看你的另一个线程。看起来很有趣。 有节奏的。我只是想更新您,在我的另一篇文章中,我的代码现在不再崩溃,但我仍然无法提取元数据以获取任何有用的信息。我觉得我超级接近。再次感谢您的所有帮助。以上是关于MPMoviePlayerController 在 5 秒后停止播放 - Swift的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MPMoviePlayerController 上处理多个 SRT 文件
在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏
在 UITableViewCell 中嵌入 MPMoviePlayerController
MPMoviePlayerController 在影片结尾更改控件样式