I have a series of videos in one folder.
in another folder I have the following code:
import Foundation
import AVKit
var videoPlayer: AVPlayer?
func playVideo(filename: String, fileFormat: String) -> AVPlayer {
if Bundle.main.url(forResource: filename, withExtension: fileFormat) != nil {
videoPlayer = AVPlayer(url: Bundle.main.url(forResource: filename, withExtension: fileFormat)!)
videoPlayer?.play()
}
return videoPlayer!
}
在另一个文件夹中,我有以下代码,但在活动中,它不会在SwiftUi中播放视频,因为它给了我以下错误:XXXXXXX.swift中的隐式解包装零值。
import SwiftUI
import AVKit
struct VideoPlayerView: View {
// MARK: - PROPERTIES
var videoSelected: String
var videoTitle: String
// MARK: - BODY
var body: some View {
VideoPlayer(player: playVideo(filename: videoSelected, fileFormat: "mp4"))
}
}
// MARK: - PREVIEW
struct VideoPlayerView_Previews: PreviewProvider {
static var previews: some View {
VideoPlayerView(videoSelected: "lion", videoTitle: "Lion")
}
}
发布于 2022-10-18 08:07:12
如果您的文件不存在,则无法显示VideoPlayer
。
var body: some View {
AVPlayer(fileName: videoSelected, fileFormat: "mp4").map(VideoPlayer.init)
}
extension AVPlayer {
convenience init?(fileName: String, fileFormat: String) {
guard let url = Bundle.main.url(forResource: fileName, withExtension: fileFormat)
else { return nil }
self.init(url: url)
play()
}
}
https://stackoverflow.com/questions/74111773
复制相似问题