Skip to content

Commit

Permalink
fix: can not call startDirectCdnStreaming again after stopDirectCdnSt…
Browse files Browse the repository at this point in the history
…reaming
  • Loading branch information
littleGnAl committed Apr 19, 2023
1 parent a250211 commit ce9fa44
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions lib/src/impl/agora_rtc_engine_impl.dart
Expand Up @@ -182,6 +182,8 @@ class RtcEngineImpl extends rtc_engine_ex_binding.RtcEngineExImpl

final ScopedObjects _objectPool = ScopedObjects();

DirectCdnStreamingEventHandlerWrapper? _directCdnStreamingEventHandlerWrapper;

@internal
late MethodChannel engineMethodChannel;

Expand Down Expand Up @@ -558,7 +560,7 @@ class RtcEngineImpl extends rtc_engine_ex_binding.RtcEngineExImpl
{required DirectCdnStreamingEventHandler eventHandler,
required String publishUrl,
required DirectCdnStreamingMediaOptions options}) async {
final eventHandlerWrapper =
_directCdnStreamingEventHandlerWrapper =
DirectCdnStreamingEventHandlerWrapper(eventHandler);
final param =
createParams({'publishUrl': publishUrl, 'options': options.toJson()});
Expand All @@ -567,11 +569,29 @@ class RtcEngineImpl extends rtc_engine_ex_binding.RtcEngineExImpl
ScopedEvent(
scopedKey: _rtcEngineImplScopedKey,
registerName: 'RtcEngine_startDirectCdnStreaming',
unregisterName: '',
handler: eventHandlerWrapper),
unregisterName: 'RtcEngine_stopDirectCdnStreaming',
handler: _directCdnStreamingEventHandlerWrapper!),
jsonEncode(param));
}

@override
Future<void> stopDirectCdnStreaming() async {
if (_directCdnStreamingEventHandlerWrapper == null) {
return;
}

final param = createParams({});
await irisMethodChannel.unregisterEventHandler(
ScopedEvent(
scopedKey: _rtcEngineImplScopedKey,
registerName: 'RtcEngine_startDirectCdnStreaming',
unregisterName: 'RtcEngine_stopDirectCdnStreaming',
handler: _directCdnStreamingEventHandlerWrapper!),
jsonEncode(param));

_directCdnStreamingEventHandlerWrapper = null;
}

@override
VideoDeviceManager getVideoDeviceManager() {
return VideoDeviceManagerImpl.create(this);
Expand Down

0 comments on commit ce9fa44

Please sign in to comment.