videoEventsFor method

  1. @override
Stream<VideoEvent> videoEventsFor(
  1. int textureId
)
override

Returns a Stream of VideoEventTypes.

Implementation

@override
Stream<VideoEvent> videoEventsFor(int textureId) {
  return _eventChannelFor(textureId)
      .receiveBroadcastStream()
      .map((dynamic event) {
    final Map<dynamic, dynamic> map = event as Map<dynamic, dynamic>;
    switch (map['event']) {
      case 'initialized':
        return VideoEvent(
          eventType: VideoEventType.initialized,
          duration: Duration(milliseconds: map['duration'] as int),
          size: Size((map['width'] as num?)?.toDouble() ?? 0.0,
              (map['height'] as num?)?.toDouble() ?? 0.0),
          rotationCorrection: map['rotationCorrection'] as int? ?? 0,
        );
      case 'completed':
        return VideoEvent(
          eventType: VideoEventType.completed,
        );
      case 'bufferingUpdate':
        final List<dynamic> values = map['values'] as List<dynamic>;

        return VideoEvent(
          buffered: values.map<DurationRange>(_toDurationRange).toList(),
          eventType: VideoEventType.bufferingUpdate,
        );
      case 'bufferingStart':
        return VideoEvent(eventType: VideoEventType.bufferingStart);
      case 'bufferingEnd':
        return VideoEvent(eventType: VideoEventType.bufferingEnd);
      default:
        return VideoEvent(eventType: VideoEventType.unknown);
    }
  });
}