mirror of
https://github.com/HaishinKit/HaishinKit.swift.git
synced 2026-05-07 20:12:28 +00:00
42 lines
1.0 KiB
Swift
42 lines
1.0 KiB
Swift
import Foundation
|
|
import HaishinKit
|
|
|
|
final class ViewModel: ObservableObject {
|
|
let maxRetryCount: Int = 5
|
|
|
|
private var connection = RTMPConnection()
|
|
@Published var stream: RTMPStream!
|
|
private var retryCount = 0
|
|
|
|
func config() {
|
|
stream = RTMPStream(connection: connection)
|
|
}
|
|
|
|
func unregisterForPublishEvent() {
|
|
Task {
|
|
try await stream.close()
|
|
}
|
|
}
|
|
|
|
func startPlaying() {
|
|
Task {
|
|
do {
|
|
let response = try await connection.connect(Preference.default.uri ?? "")
|
|
try await stream.play(Preference.default.streamName)
|
|
} catch RTMPConnection.Error.requestFailed(let response) {
|
|
logger.warn(response)
|
|
} catch RTMPStream.Error.requestFailed(let response) {
|
|
logger.warn(response)
|
|
} catch {
|
|
logger.warn(error)
|
|
}
|
|
}
|
|
}
|
|
|
|
func stopPlaying() {
|
|
Task {
|
|
try await connection.close()
|
|
}
|
|
}
|
|
}
|