我有一个带有一些 UIImage 的 UIScrollView,我想使用 MPMoviePlayerController
放置两个视频(我知道它已被弃用)但是如果我使用两个以上的视频,第二个会停止播放,因为 Apple DOC说不可能同时启动多个视频。所以我想保留相同的媒体播放器但内容不同。
但是我无法替换内容。
var moviePlayer : MPMoviePlayerController?
func firstVideo(path:String){
var audioplayer : MPMoviePlayerController!
var path = NSBundle.mainBundle().pathForResource("airplane", ofType:"m4v")
let url = NSURL.fileURLWithPath(path)
self.moviePlayer = MPMoviePlayerController(contentURL: url)
let player = self.moviePlayer
if let player = self.moviePlayer {
player.view.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
player.view.sizeToFit()
player.scalingMode = MPMovieScalingMode.Fill
player.movieSourceType = MPMovieSourceType.File
player.repeatMode = MPMovieRepeatMode.One
self.view.addSubview(player.view)
}
}
func scrollViewDidScroll(scrollView: UIScrollView){
var pageheight = self.scrollView.frame.size.width
var page = floor((self.scrollView.contentOffset.x - pageheight / 2) / pageheight) + 1;
self.pageControl.currentPage = Int(page);
if (page == 1.0){
if let player = moviePlayer{
player.play()
}
}
else if (page == 2.0){
if let player = moviePlayer{
player.stop()
}
}
if (page == 3.0){
if let player = moviePlayer{
var path = NSBundle.mainBundle().pathForResource("another_video", ofType:"m4v")
firstVideo(path!)
player.play()
}
}
else{
if let player = moviePlayer{
player.stop()
// playerTwo.view.removeFromSuperview()
}
}
}
最佳答案
为什么不使用 UITableView
而不是 UIScrollView
?因此,您只能在每个单元格中使用一个包含多个内容的 MPMoviePlayerController
对象。
此外,您为下一个 MPMoviePlayerController
对象获取新的包 URL,并将其发送给您的播放器函数,但您在此函数中再次创建名为“path”的新对象,并且从不使用 path
发送的对象。所以你的视频路径总是一样的。试试这个;
if (page == 3.0){
if let player = moviePlayer{
let path = NSBundle.mainBundle().pathForResource("another_video", ofType:"m4v")
player.contentURL = NSURL.fileURLWithPath(path!)
player.play()
}
}
关于ios - 快速更改视频内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33522731/