53 lines
1.3 KiB
Swift
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)?
|
|
|
|
}
|