mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-01-11 20:10:25 +00:00
59 lines
2 KiB
Swift
59 lines
2 KiB
Swift
//
|
|
// KSPlayerModule.swift
|
|
// Nuvio
|
|
//
|
|
// Created by KSPlayer integration
|
|
//
|
|
|
|
import Foundation
|
|
import KSPlayer
|
|
import React
|
|
|
|
@objc(KSPlayerModule)
|
|
class KSPlayerModule: RCTEventEmitter {
|
|
override static func requiresMainQueueSetup() -> Bool {
|
|
return true
|
|
}
|
|
|
|
override func supportedEvents() -> [String]! {
|
|
return [
|
|
"KSPlayer-onLoad",
|
|
"KSPlayer-onProgress",
|
|
"KSPlayer-onBuffering",
|
|
"KSPlayer-onEnd",
|
|
"KSPlayer-onError"
|
|
]
|
|
}
|
|
|
|
@objc func getTracks(_ nodeTag: NSNumber, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
DispatchQueue.main.async {
|
|
if let viewManager = self.bridge.module(for: KSPlayerViewManager.self) as? KSPlayerViewManager {
|
|
viewManager.getTracks(nodeTag, resolve: resolve, reject: reject)
|
|
} else {
|
|
reject("NO_VIEW_MANAGER", "KSPlayerViewManager not found", nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
@objc func getAirPlayState(_ nodeTag: NSNumber, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
DispatchQueue.main.async {
|
|
if let viewManager = self.bridge.module(for: KSPlayerViewManager.self) as? KSPlayerViewManager {
|
|
viewManager.getAirPlayState(nodeTag, resolve: resolve, reject: reject)
|
|
} else {
|
|
reject("NO_VIEW_MANAGER", "KSPlayerViewManager not found", nil)
|
|
}
|
|
}
|
|
}
|
|
|
|
@objc func showAirPlayPicker(_ nodeTag: NSNumber) {
|
|
print("[KSPlayerModule] showAirPlayPicker called for nodeTag: \(nodeTag)")
|
|
DispatchQueue.main.async {
|
|
if let viewManager = self.bridge.module(for: KSPlayerViewManager.self) as? KSPlayerViewManager {
|
|
print("[KSPlayerModule] Found KSPlayerViewManager, calling showAirPlayPicker")
|
|
viewManager.showAirPlayPicker(nodeTag)
|
|
} else {
|
|
print("[KSPlayerModule] Could not find KSPlayerViewManager")
|
|
}
|
|
}
|
|
}
|
|
}
|