Skip to content

Commit fcad74f

Browse files
committed
Added video tester
1 parent c2124fa commit fcad74f

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

Luna/Views/SettingsView/PlayerSettingsView.swift

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//
77

88
import SwiftUI
9+
import AVKit
910

1011
enum ExternalPlayer: String, CaseIterable, Identifiable {
1112
case none = "Default"
@@ -168,7 +169,60 @@ struct PlayerSettingsView: View {
168169
.pickerStyle(.menu)
169170
}
170171
}
172+
173+
Section(header: Text("Testing")) {
174+
Button(action: {
175+
playTestVideo()
176+
}) {
177+
Text("Test Video Player")
178+
.foregroundColor(accentColorManager.currentAccentColor)
179+
}
180+
}
171181
}
172182
.navigationTitle("Media Player")
173183
}
184+
185+
private func playTestVideo() {
186+
let testUrlString = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
187+
guard let streamURL = URL(string: testUrlString) else { return }
188+
189+
let external = store.externalPlayer
190+
if let schemeUrl = external.schemeURL(for: testUrlString), external != .none, UIApplication.shared.canOpenURL(schemeUrl) {
191+
UIApplication.shared.open(schemeUrl, options: [:], completionHandler: nil)
192+
return
193+
}
194+
195+
let inAppPlayer = store.inAppPlayer
196+
197+
if inAppPlayer == .mpv {
198+
let preset = PlayerPreset.presets.first
199+
let pvc = PlayerViewController(
200+
url: streamURL,
201+
preset: preset ?? PlayerPreset(title: "Default", summary: "", stream: nil, commands: []),
202+
headers: nil,
203+
subtitles: nil
204+
)
205+
pvc.mediaInfo = .movie(id: 0, title: "Big Buck Bunny")
206+
pvc.modalPresentationStyle = .fullScreen
207+
208+
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
209+
let rootVC = windowScene.windows.first?.rootViewController {
210+
rootVC.topmostViewController().present(pvc, animated: true, completion: nil)
211+
}
212+
} else {
213+
let playerVC = NormalPlayer()
214+
let asset = AVURLAsset(url: streamURL)
215+
let item = AVPlayerItem(asset: asset)
216+
playerVC.player = AVPlayer(playerItem: item)
217+
playerVC.mediaInfo = .movie(id: 0, title: "Big Buck Bunny")
218+
playerVC.modalPresentationStyle = .fullScreen
219+
220+
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
221+
let rootVC = windowScene.windows.first?.rootViewController {
222+
rootVC.topmostViewController().present(playerVC, animated: true) {
223+
playerVC.player?.play()
224+
}
225+
}
226+
}
227+
}
174228
}

0 commit comments

Comments
 (0)