MoviaBox/Thimra/Class/Player/ViewModel/SPPlayerListViewModel.swift
2025-04-23 11:33:46 +08:00

53 lines
1.3 KiB
Swift

//
// SPPlayerListViewModel.swift
// Thimra
//
// Created by on 2025/4/9.
//
import UIKit
class SPPlayerListViewModel: NSObject {
@objc dynamic var isPlaying: Bool = true
private var _currentPlayer: SPPlayerProtocol?
var currentPlayer: SPPlayerProtocol? {
set {
_currentPlayer?.isCurrent = false
_currentPlayer?.pause()
_currentPlayer = newValue
_currentPlayer?.playerFinishHadle = { [weak self] in
self?.handlePlayFinish?()
}
_currentPlayer?.isCurrent = true
_currentPlayer?.rate = speedModel.getRate()
}
get {
return _currentPlayer
}
}
@objc dynamic private(set) lazy var speedModel = SPSpeedModel(speed: .x1)
///
func setSpeedPlay(speedModel: SPSpeedModel) {
self.speedModel = speedModel
currentPlayer?.rate = speedModel.getRate()
}
///
func seekToTime(toTime: Int) {
self.currentPlayer?.seekToTime(toTime: toTime)
}
///
var handlePauseOrPlay: (() -> Void)?
///
var handlePlayFinish: (() -> Void)?
///
var handleEpisode: (() -> Void)?
}