setMethodCallHandler method
Future<void>
setMethodCallHandler(
)
Implementation
Future<void> setMethodCallHandler() async {
_methodChannel.setMethodCallHandler((call) async {
switch (call.method) {
case Constants.onCurrentDuration:
var duration = call.arguments[Constants.current];
var key = call.arguments[Constants.playerKey];
if (duration.runtimeType == int) {
var identifier = PlayerIdentifier<int>(key, duration);
PlatformStreams.instance.addCurrentDurationEvent(identifier);
}
break;
case Constants.onDidFinishPlayingAudio:
var key = call.arguments[Constants.playerKey];
var playerState =
getPlayerState(call.arguments[Constants.finishType]);
var stateIdentifier = PlayerIdentifier<PlayerState>(key, playerState);
var completionIdentifier = PlayerIdentifier<void>(key, null);
PlatformStreams.instance.addCompletionEvent(completionIdentifier);
PlatformStreams.instance.addPlayerStateEvent(stateIdentifier);
if (PlatformStreams.instance.playerControllerFactory[key] != null) {
PlatformStreams.instance.playerControllerFactory[key]
?._playerState = playerState;
}
break;
case Constants.onCurrentExtractedWaveformData:
var key = call.arguments[Constants.playerKey];
var progress = call.arguments[Constants.progress];
var waveformData =
List<double>.from(call.arguments[Constants.waveformData]);
PlatformStreams.instance.addExtractedWaveformDataEvent(
PlayerIdentifier<List<double>>(key, waveformData),
);
PlatformStreams.instance.addExtractionProgress(
PlayerIdentifier<double>(key, progress),
);
break;
}
});
}