|
|
@ -10,6 +10,7 @@ import AVKit |
|
|
struct SVideoPlayer: View, EditItemDelegate { |
|
|
struct SVideoPlayer: View, EditItemDelegate { |
|
|
// url: URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")! |
|
|
// url: URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")! |
|
|
var player = AVQueuePlayer(items: [AVPlayerItem]()) |
|
|
var player = AVQueuePlayer(items: [AVPlayerItem]()) |
|
|
|
|
|
var secondPlayer = AVQueuePlayer(items: [AVPlayerItem]()) |
|
|
var playerLooper : AVPlayerLooper |
|
|
var playerLooper : AVPlayerLooper |
|
|
var completionHandler: ((Bool) -> Void)? |
|
|
var completionHandler: ((Bool) -> Void)? |
|
|
|
|
|
|
|
|
@ -341,14 +342,10 @@ struct SVideoPlayer: View, EditItemDelegate { |
|
|
|
|
|
|
|
|
if currentSnapshot.playerURL != model.currentURL { |
|
|
if currentSnapshot.playerURL != model.currentURL { |
|
|
model.currentURL = currentSnapshot.playerURL |
|
|
model.currentURL = currentSnapshot.playerURL |
|
|
player.insert(model.currentPlayerItem(), after: player.currentItem) |
|
|
|
|
|
|
|
|
|
|
|
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { |
|
|
|
|
|
player.advanceToNextItem() |
|
|
|
|
|
// seekTime(currentSnapshot.time) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// player.replaceCurrentItem(with: model.currentPlayerItem()) |
|
|
|
|
|
|
|
|
player.replaceCurrentItem(with: model.currentPlayerItem()) |
|
|
|
|
|
playerLooper |
|
|
|
|
|
seekTime(currentSnapshot.time) |
|
|
} |
|
|
} |
|
|
else { |
|
|
else { |
|
|
seekTime(currentSnapshot.time) |
|
|
seekTime(currentSnapshot.time) |
|
|
|