Files
HaishinKit.swift/Examples/visionOS/ViewModel.swift
T
2024-08-17 16:29:50 +09:00

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()
}
}
}