swift package resolve
.VideoPlayer.xcodeproj
and run Demo
target.struct ContentView : View {
@State private var play: Bool = true
var body: some View {
VideoPlayer(url: someVideoURL, play: $play)
}
}
struct ContentView : View {
@State private var autoReplay: Bool = true
@State private var mute: Bool = false
@State private var play: Bool = true
@State private var time: CMTime = .zero
var body: some View {
VideoPlayer(url: someVideoURL, play: $play, time: $time)
.autoReplay(autoReplay)
.mute(mute)
.onBufferChanged { progress in
// Network loading buffer progress changed
}
.onPlayToEndTime {
// Play to the end time.
}
.onReplay {
// Replay after playing to the end.
}
.onStateChanged { state in
switch state {
case .loading:
// Loading...
case .playing(let totalDuration):
// Playing...
case .paused(let playProgress, let bufferProgress):
// Paused...
case .error(let error):
// Error...
}
}
}
}
Set the video urls to be preload queue. Preloading will automatically cache a short segment of the beginning of the video and decide whether to start or pause the preload based on the buffering of the currently playing video.
VideoPlayer.preload(urls: [URL])
Set the preload size, the default value is 1024 * 1024, unit is byte.
VideoPlayer.preloadByteCount = 1024 * 1024 // = 1M
Get the total size of the video cache.
let size = VideoPlayer.calculateCachedSize()
Clean up all caches.
VideoPlayer.cleanAllCache()
Xcode -> File -> Swift Packages -> Add Package Dependency...
https://github.com/wxxsw/VideoPlayer
.Next
, then select the version, complete.Banner Design by @aduqin
VideoPlayer is released under the MIT license. See LICENSE for details.
link |
Stars: 523 |
Last commit: 6 weeks ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics