Commit 30504666 authored by Alex朱枝文's avatar Alex朱枝文

内置playerkit设置为可空,避免SDK生成失败崩溃

parent a357ead1
......@@ -155,9 +155,9 @@ extension YHBasePlayerViewController: YHPlayerControlViewDelegate {
func playerControlView(_ view: YHPlayerControlView, didSeekTo position: Float) {
guard let player = player else { return }
let duration = player.playerKit.getDuration()
let duration = player.getDuration()
let targetPosition = Int(Float(duration) * position)
player.playerKit.seek(toPosition: targetPosition)
player.playerKit?.seek(toPosition: targetPosition)
}
func playerControlView(_ view: YHPlayerControlView, didChangeQuality quality: YHVideoQuality) {
......
......@@ -352,7 +352,7 @@ extension YHLivePlayerViewController: YHPlayerDelegate {
}
func player(_ player: YHPlayer, didChangedToPosition position: Int) {
let duration = player.playerKit.getDuration()
let duration = player.getDuration()
guard duration > 0 else { return }
let progress = Float(position) / Float(duration)
......
......@@ -25,28 +25,28 @@ protocol YHPlayerDelegate: AnyObject {
class YHPlayer {
weak var delegate: YHPlayerDelegate?
let type: YHPlayerType
let playerKit: AgoraRtcMediaPlayerProtocol
var playerKit: AgoraRtcMediaPlayerProtocol?
private(set) var currentURL: String?
weak var currentPlayView: UIView?
private(set) var currentTitle: String?
var isMuted: Bool {
get { playerKit.getMute() }
set { playerKit.mute(newValue) }
get { playerKit?.getMute() ?? false }
set { playerKit?.mute(newValue) }
}
init(type: YHPlayerType, playerKit: AgoraRtcMediaPlayerProtocol) {
init(type: YHPlayerType, playerKit: AgoraRtcMediaPlayerProtocol?) {
self.type = type
self.playerKit = playerKit
// 基础设置
playerKit.setLoopCount(-1) // 循环播放
playerKit?.setLoopCount(-1) // 循环播放
}
func setPlayView(_ view: UIView?) {
currentPlayView = view
playerKit.setView(view)
playerKit?.setView(view)
}
func play(url: String, title: String? = nil) {
......@@ -55,25 +55,25 @@ class YHPlayer {
let mediaSource = AgoraMediaSource()
mediaSource.url = url
mediaSource.autoPlay = true
let result = playerKit.open(with: mediaSource)
let result = playerKit?.open(with: mediaSource)
if result == 0 {
playerKit.play()
playerKit?.play()
}
}
func stop() {
playerKit.stop()
playerKit?.stop()
currentPlayView = nil
currentURL = nil
currentTitle = nil
}
func pause() {
playerKit.pause()
playerKit?.pause()
}
func resume() {
playerKit.play()
playerKit?.play()
}
func reset() {
......@@ -84,18 +84,18 @@ class YHPlayer {
func releasePlayer() {
reset()
//playerKit.destroy()
playerKit = nil
}
func getPosition() -> Int {
return playerKit.getPosition()
return playerKit?.getPosition() ?? 0
}
func getDuration() -> Int {
return playerKit.getDuration()
return playerKit?.getDuration() ?? 0
}
func getPlayState() -> AgoraMediaPlayerState {
return playerKit.getPlayerState()
return playerKit?.getPlayerState() ?? .idle
}
}
......@@ -124,7 +124,8 @@ class YHPlayerManager: NSObject {
private func createPlayer(for type: YHPlayerType) -> YHPlayer {
guard let playerKit = agoraKit.createMediaPlayer(with: self) else {
fatalError("Failed to create media player")
//fatalError("Failed to create media player")
return YHPlayer(type: type, playerKit: nil)
}
let player = YHPlayer(type: type, playerKit: playerKit)
return player
......
......@@ -16,7 +16,7 @@ class YHSimpleAudienceVC: UIViewController {
private var remoteView: UIView!
// private var channelName: String = "1732950381844975000"
private let viewModel = YHLiveSalesViewModel()
private let liveId: Int = 37
private let liveId: Int = 40
// MARK: - Lifecycle
override func viewDidLoad() {
......
......@@ -80,7 +80,7 @@ extension YHVODPlayerViewController: YHPlayerDelegate {
}
func player(_ player: YHPlayer, didChangedToPosition position: Int) {
let duration = player.playerKit.getDuration()
let duration = player.getDuration() // playerKit.getDuration()
guard duration > 0 else { return }
let progress = Float(position) / Float(duration)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment