为什么不播放视频或者我的网址无法正常工作?
我想通过按下单元格内的按钮来播放视频。在我的代码中没有错误,所以我认为每一件事情都是正确设置的,但是当我运行模拟器时视频不能播放。它是URL还是我需要在某处添加更多代码?播放托管在网站上的视频的最佳方式是什么?请提供它的网址?如果是这样,这对我没有效果。为什么不播放视频或者我的网址无法正常工作?
这里的是代码:
import UIKit
import AVFoundation
import AVKit
class VideoPlayerView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.black
let urlString = "www.dailymotion.com./video/x1prji_scott-hall-vs-hollywood-hulk-hogan-sport"
if let url = URL(string: urlString) {
let player = AVPlayer(url: url)
let playerLayer = AVPlayerLayer(player: player)
self.layer.addSublayer(playerLayer)
playerLayer.frame = self.bounds
player.play()
}
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class DrillsTableViewCell: UITableViewCell {
@IBOutlet weak var logoImage: UIImageView!
@IBOutlet weak var drillTitle: UILabel!
@IBOutlet weak var playButton: UIButton!
@IBAction func watchButton(_ sender: Any) {
print(123)
if let keyWindow = UIApplication.shared.keyWindow {
let view = UIView(frame: keyWindow.frame)
view.backgroundColor = UIColor.white
view.frame = CGRect(x: 0.0, y: 0.0, width: keyWindow.frame.width, height: keyWindow.frame.height)
let videoPlayerFrame = CGRect(x: 0, y: 0, width: keyWindow.frame.width, height: keyWindow.frame.width * 9/16)
let videoPlayerView = VideoPlayerView(frame: videoPlayerFrame)
view.addSubview(videoPlayerView)
keyWindow.addSubview(view)
UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: {
view.frame = keyWindow.frame
}, completion: { (completedAnimation) in
//possible features implemented later
UIApplication.shared.isStatusBarHidden = true
})
}
}
}
由于VC.One说,你正在使用指向一个网页的网址 - 也就是说,一个HTML页面,看起来像这样:
换句话说,您提供了整个HTML5页面,图像,视频,CSS等 - 浏览器需要显示整个页面的信息。
AVPlayer期待到视频资源的URL - 即MP4文件或流式索引文件或清单。
通常情况下,YouTube或DailyMotion等网站希望您在添加视频时加入品牌。 。
对于你的例子,如果你点击分享按钮,你会看到一些嵌入代码,你可以在网页上只是包含这个特定的视频(这是网络而不是本地播放器):
<iframe frameborder="0" width="480" height="270" src="//www.dailymotion.com/embed/video/x1prji" allowfullscreen></iframe><br /><a href="http://www.dailymotion.com/video/x1prji" target="_blank">Scott Hall vs. "Hollywood" Hulk Hogan</a> <i>by <a href="http://www.dailymotion.com/Stinger1981" target="_blank">Stinger1981</a></i>
还有一个SDK,让你在你的APP-这一个,如果对的ObjectiveC嵌入位DailyMotion视频并没有对斯威夫特也有较新的一个:
因此,为了让我只从网站获取视频文件,而不是整个网站的URL,我怎样才能将代码格式化到播放视频的位置? –
如果它是本机应用程序,您确实想使用SDK。 – Mick
我怀疑'AVPlayer'需要一个视频文件(比如'.mp4'或'3gp'),但是你的代码给它一个网页('.html'文件)。您可以使用'webView'来打开网页。 –