MediaQueue methods: ios

This commit is contained in:
gianlucaparadise 2022-07-11 08:25:47 +02:00
parent 65ed8a14a7
commit 96e0ad4adf
2 changed files with 35 additions and 0 deletions

View file

@ -247,3 +247,20 @@ func getFlutterMediaType(mediaType: GCKMediaMetadataType?) -> MediaType {
}
}
func getFlutterMediaQueueItem(item: GCKMediaQueueItem?) -> MediaQueueItem {
let result = MediaQueueItem()
if (item == nil) {
result.itemId = -1
} else {
result.itemId = NSNumber(value: item?.itemID ?? 0)
}
result.autoplay = NSNumber(value: item?.autoplay ?? false)
result.playbackDuration = NSNumber(value: item?.playbackDuration ?? -1)
result.startTime = NSNumber(value: item?.startTime ?? 0)
result.preloadTime = NSNumber(value: item?.preloadTime ?? 0)
result.media = getFlutterMediaInfo(mediaInfo: item?.mediaInformation)
return result
}

View file

@ -363,6 +363,24 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio
remoteMediaClient?.queuePreviousItem()
}
public func getQueueItemCountWithError(_ error: AutoreleasingUnsafeMutablePointer<FlutterError?>) -> NSNumber? {
if (mediaQueue == nil) {
return -1
}
let itemCount = mediaQueue?.itemCount ?? 0
return NSNumber(value: itemCount)
}
public func getQueueItemAtIndexIndex(_ index: NSNumber, error: AutoreleasingUnsafeMutablePointer<FlutterError?>) -> MediaQueueItem? {
if (index.intValue < 0) {
return getFlutterMediaQueueItem(item: nil)
}
let mediaQueueItem = mediaQueue?.item(at: index.uintValue, fetchIfNeeded: true)
return getFlutterMediaQueueItem(item: mediaQueueItem)
}
// MARK: - GCKSessionManagerListener
// onSessionSuspended