我想通過按下單元格內的按鈕來播放視頻。在我的代碼中沒有錯誤,所以我認爲每一件事情都是正確設置的,但是當我運行模擬器時視頻不能播放。它是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
})
}
}
}
我懷疑'AVPlayer'需要一個視頻文件(比如'.mp4'或'3gp'),但是你的代碼給它一個網頁('.html'文件)。您可以使用'webView'來打開網頁。 –