视频无法使用 swift 代码
Video not working on with swift code
所有这些代码功能都是视图控制器上的一个按钮。该按钮应播放视频。现在代码中没有错误消息。所发生的只是按钮被按下而什么也没有发生。没有错误信息。我只有一个视图控制器页面。下面列出了代码。
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
var moviePlayer: AVPlayerViewController?
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func playVideo(_ sender: UIButton) {
playLocalVideo()
}
func playLocalVideo(){
if moviePlayer != nil {
do {
let filePath = Bundle.main.path(forResource: "t", ofType: "mp4")
let videoURL = NSURL(fileURLWithPath: filePath!)
let player = AVPlayer(url: videoURL as URL)
let playViewController = AVPlayerViewController()
playViewController.player = player
self.present(playViewController, animated: true) {() -> Void in playViewController.player!.play()
}
} catch {
print(error)
}}}}
在 playLocalVideo 中,moviePlayer: AVPlayerViewController?
没有被初始化,它将是 nil,所以按下按钮时没有任何反应。
class ViewController: UIViewController {
let moviePlayer = AVPlayerViewController()
...
...
func playLocalVideo(){
if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4") {
let url = URL(fileURLWithPath: filePath)
let player = AVPlayer(url: url)
moviePlayer.player = player
present(moviePlayer, animated: true, completion: nil)
}
}
}
试试下面的代码
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
let moviePlayer = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
playLocalVideo()
}
func playLocalVideo(){
if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4"){
let videoURL = NSURL(fileURLWithPath: filePath)
let player = AVPlayer(url: videoURL as URL)
moviePlayer.player = player
self.present(moviePlayer, animated: true) {
self.moviePlayer.player!.play()
}
}
else{
print("Oops, something wrong when playing video.mp4")
}
}
}
并确保在将视频添加到目标时,它不应该是下图这样的图像
应该像下面这样
所有这些代码功能都是视图控制器上的一个按钮。该按钮应播放视频。现在代码中没有错误消息。所发生的只是按钮被按下而什么也没有发生。没有错误信息。我只有一个视图控制器页面。下面列出了代码。
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
var moviePlayer: AVPlayerViewController?
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func playVideo(_ sender: UIButton) {
playLocalVideo()
}
func playLocalVideo(){
if moviePlayer != nil {
do {
let filePath = Bundle.main.path(forResource: "t", ofType: "mp4")
let videoURL = NSURL(fileURLWithPath: filePath!)
let player = AVPlayer(url: videoURL as URL)
let playViewController = AVPlayerViewController()
playViewController.player = player
self.present(playViewController, animated: true) {() -> Void in playViewController.player!.play()
}
} catch {
print(error)
}}}}
在 playLocalVideo 中,moviePlayer: AVPlayerViewController?
没有被初始化,它将是 nil,所以按下按钮时没有任何反应。
class ViewController: UIViewController {
let moviePlayer = AVPlayerViewController()
...
...
func playLocalVideo(){
if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4") {
let url = URL(fileURLWithPath: filePath)
let player = AVPlayer(url: url)
moviePlayer.player = player
present(moviePlayer, animated: true, completion: nil)
}
}
}
试试下面的代码
import UIKit
import AVKit
import AVFoundation
class ViewController: UIViewController {
let moviePlayer = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
playLocalVideo()
}
func playLocalVideo(){
if let filePath = Bundle.main.path(forResource: "t", ofType: "mp4"){
let videoURL = NSURL(fileURLWithPath: filePath)
let player = AVPlayer(url: videoURL as URL)
moviePlayer.player = player
self.present(moviePlayer, animated: true) {
self.moviePlayer.player!.play()
}
}
else{
print("Oops, something wrong when playing video.mp4")
}
}
}
并确保在将视频添加到目标时,它不应该是下图这样的图像
应该像下面这样