From 02f04bc621029fcdae416af39074cabe3a740566 Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Fri, 19 Nov 2021 06:51:08 +0100 Subject: [PATCH] RemoteMediaClient implement in flutter --- example/lib/main.dart | 6 +++++ lib/src/cast/SessionManager.dart | 8 +++++++ lib/src/flutter_cast_framework.dart | 35 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/example/lib/main.dart b/example/lib/main.dart index 1c3f1b3..6330032 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -31,6 +31,8 @@ class _MyAppState extends State { .addListener(_onSessionStateChanged); castFramework.castContext.sessionManager.onMessageReceived = _onMessageReceived; + castFramework.castContext.sessionManager.onStatusUpdated = + _onRemoteMediaClientStatusUpdated; } @override @@ -61,6 +63,10 @@ class _MyAppState extends State { }); } + void _onRemoteMediaClientStatusUpdated() { + debugPrint("RemoteMediaClient status updated"); + } + void _onSendMessage() { String message = this.textMessageController.text; String messageAsJson = "{\"text\": \"$message\"}"; diff --git a/lib/src/cast/SessionManager.dart b/lib/src/cast/SessionManager.dart index b2d5696..a0cb345 100644 --- a/lib/src/cast/SessionManager.dart +++ b/lib/src/cast/SessionManager.dart @@ -30,6 +30,14 @@ class SessionManager { MessageReceivedCallback? onMessageReceived; + VoidCallback? onStatusUpdated; + VoidCallback? onMetadataUpdated; + VoidCallback? onQueueStatusUpdated; + VoidCallback? onPreloadStatusUpdated; + VoidCallback? onSendingRemoteMediaRequest; + VoidCallback? onAdBreakStatusUpdated; + VoidCallback? onMediaError; + void platformOnMessageReceived(CastMessage castMessage) { var thisOnMessageReceived = onMessageReceived; diff --git a/lib/src/flutter_cast_framework.dart b/lib/src/flutter_cast_framework.dart index d5bc1ac..09d5964 100644 --- a/lib/src/flutter_cast_framework.dart +++ b/lib/src/flutter_cast_framework.dart @@ -90,5 +90,40 @@ class FlutterCastFramework extends CastFlutterApi { } //endregion + //region RemoteMediaClient + @override + void onAdBreakStatusUpdated() { + castContext.sessionManager.onAdBreakStatusUpdated?.call(); + } + + @override + void onMediaError() { + castContext.sessionManager.onMediaError?.call(); + } + + @override + void onMetadataUpdated() { + castContext.sessionManager.onMetadataUpdated?.call(); + } + + @override + void onPreloadStatusUpdated() { + castContext.sessionManager.onPreloadStatusUpdated?.call(); + } + + @override + void onQueueStatusUpdated() { + castContext.sessionManager.onQueueStatusUpdated?.call(); + } + + @override + void onSendingRemoteMediaRequest() { + castContext.sessionManager.onSendingRemoteMediaRequest?.call(); + } + + @override + void onStatusUpdated() { + castContext.sessionManager.onStatusUpdated?.call(); + } //endregion }