new video adding ui + selecting multiple videos
This commit is contained in:
1 parent
047c9e9504
commit
ef444f7c5c
7 files changed
+241
-88
No files matched your search
@@ -0,0 +1,41 @@
|
||||
//
|
||||
// LoopingPlayerUIView.swift
|
||||
// Pocket Poster
|
||||
//
|
||||
// Created by lemin on 6/11/25.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import AVFoundation
|
||||
|
||||
class LoopingPlayerUIView: UIView {
|
||||
|
||||
private var playerLayer = AVPlayerLayer()
|
||||
private var playerLooper: AVPlayerLooper?
|
||||
private var player = AVQueuePlayer()
|
||||
|
||||
init(videoURL: URL){
|
||||
let asset = AVAsset(url: videoURL)
|
||||
let item = AVPlayerItem(asset: asset)
|
||||
|
||||
super.init(frame: .zero)
|
||||
|
||||
// Setup the player
|
||||
playerLayer.player = player
|
||||
playerLayer.videoGravity = .resizeAspectFill
|
||||
layer.addSublayer(playerLayer)
|
||||
|
||||
// Create a new player looper with the queue player and template item
|
||||
playerLooper = AVPlayerLooper(player: player, templateItem: item)
|
||||
player.play()
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
playerLayer.frame = bounds
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// PlayerView.swift
|
||||
// Pocket Poster
|
||||
//
|
||||
// Created by lemin on 6/11/25.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct PlayerView: UIViewRepresentable {
|
||||
var videoURL: URL
|
||||
|
||||
init(videoURL: URL) {
|
||||
self.videoURL = videoURL
|
||||
}
|
||||
|
||||
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PlayerView>) {
|
||||
}
|
||||
|
||||
func makeUIView(context: Context) -> UIView {
|
||||
return LoopingPlayerUIView(videoURL: videoURL)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user