MediaStatus handling ios
This commit is contained in:
parent
b2cda81cca
commit
1ae9006756
2 changed files with 59 additions and 3 deletions
|
|
@ -8,6 +8,61 @@
|
|||
import Foundation
|
||||
import GoogleCast
|
||||
|
||||
func getFlutterMediaStatus(mediaStatus: GCKMediaStatus?) -> MediaStatus {
|
||||
let result = MediaStatus()
|
||||
|
||||
if (mediaStatus == nil) {
|
||||
return result
|
||||
}
|
||||
|
||||
result.isPlayingAd = NSNumber(value: mediaStatus?.playingAd ?? false)
|
||||
result.mediaInfo = getFlutterMediaInfo(mediaInfo: mediaStatus?.mediaInformation)
|
||||
result.playerState = getFlutterPlayerState(playerState: mediaStatus?.playerState)
|
||||
result.adBreakStatus = getFlutterAdBreakStatus(adBreakStatus: mediaStatus?.adBreakStatus)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func getFlutterAdBreakStatus(adBreakStatus: GCKAdBreakStatus?) -> AdBreakStatus {
|
||||
let result = AdBreakStatus()
|
||||
|
||||
if (adBreakStatus == nil) {
|
||||
return result
|
||||
}
|
||||
|
||||
result.adBreakId = adBreakStatus?.adBreakID
|
||||
result.adBreakClipId = adBreakStatus?.adBreakClipID
|
||||
result.whenSkippableMs = getFlutterWhenSkippableMs(whenSkippable: adBreakStatus?.whenSkippable)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func getFlutterWhenSkippableMs(whenSkippable: TimeInterval?) -> NSNumber {
|
||||
let whenSkippableSecs = whenSkippable ?? 0
|
||||
let whenSkippableMs = Int(whenSkippableSecs * 1000)
|
||||
|
||||
return NSNumber(value: whenSkippableMs)
|
||||
}
|
||||
|
||||
func getFlutterPlayerState(playerState: GCKMediaPlayerState?) -> PlayerState {
|
||||
switch playerState {
|
||||
case .unknown:
|
||||
return PlayerState.unknown
|
||||
case .idle:
|
||||
return PlayerState.idle
|
||||
case .playing:
|
||||
return PlayerState.playing
|
||||
case .paused:
|
||||
return PlayerState.paused
|
||||
case .buffering:
|
||||
return PlayerState.buffering
|
||||
case .loading:
|
||||
return PlayerState.loading
|
||||
default:
|
||||
return PlayerState.unknown
|
||||
}
|
||||
}
|
||||
|
||||
func getFlutterMediaInfo(mediaInfo: GCKMediaInformation?) -> MediaInfo {
|
||||
let result = MediaInfo()
|
||||
|
||||
|
|
|
|||
|
|
@ -431,9 +431,10 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio
|
|||
}
|
||||
|
||||
debugPrint("RemoteMediaClientListener: didUpdate mediaStatus - playerState: \(playerStateLabel)")
|
||||
let playerState = mediaStatus?.playerState ?? GCKMediaPlayerState.unknown
|
||||
let nsPlayerState = NSNumber(value: playerState.rawValue)
|
||||
flutterApi.onStatusUpdatedPlayerStateRaw(nsPlayerState) { (_:Error?) in
|
||||
let flutterMediaStatus = getFlutterMediaStatus(mediaStatus: mediaStatus)
|
||||
flutterApi.onStatusUpdatedMediaStatus(flutterMediaStatus) { (_:Error?) in
|
||||
}
|
||||
flutterApi.onAdBreakStatusUpdatedMediaStatus(flutterMediaStatus) { (_:Error?) in
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue