Fix progress syncing

This commit is contained in:
ronaldheft
2022-08-16 21:14:33 -04:00
parent 6aa0f2253b
commit 10f2da9e90
3 changed files with 16 additions and 6 deletions
+9 -5
View File
@@ -157,16 +157,19 @@ class PlayerHandler {
player?.seek(amount, from: "handler")
}
public static func getMetdata() -> [String: Any] {
public static func getMetdata() -> [String: Any]? {
guard let player = player else { return nil }
guard player.isInitialized() else { return nil }
DispatchQueue.main.async {
syncProgress()
}
return [
"duration": player?.getDuration() ?? 0,
"currentTime": player?.getCurrentTime() ?? 0,
"duration": player.getDuration(),
"currentTime": player.getCurrentTime(),
"playerState": !paused,
"currentRate": player?.rate ?? 0,
"currentRate": player.rate,
]
}
@@ -199,6 +202,7 @@ class PlayerHandler {
public static func syncProgress() {
guard let player = player else { return }
guard player.isInitialized() else { return }
guard let session = getPlaybackSession() else { return }
// Get current time
@@ -254,7 +258,7 @@ class PlayerHandler {
guard Connectivity.isConnectedToInternet else { return }
DispatchQueue.global(qos: .utility).async {
let realm = try! Realm()
for session in realm.objects(PlaybackSession.self) {
for session in realm.objects(PlaybackSession.self).where({ $0.serverConnectionConfigId == Store.serverConfig?.id }) {
NSLog("Sending sessionId(\(session.id)) to server")
let sessionRef = ThreadSafeReference(to: session)
ApiClient.reportLocalPlaybackProgress(session.freeze()) { success in