import 'dart:collection'; import 'audio_stream_info.dart'; import 'stream_info.dart'; import 'streams.dart'; /// Manifest that contains information about available media streams /// in a specific video. class StreamManifest { /// Available streams. final UnmodifiableListView streams; /// Initializes an instance of [StreamManifest] StreamManifest(Iterable streams) : streams = UnmodifiableListView(streams); /// Gets streams that contain audio /// (which includes muxed and audio-only streams). Iterable get audio => streams.whereType(); /// Gets streams that contain video /// (which includes muxed and video-only streams). Iterable get video => streams.whereType(); /// Gets muxed streams (contain both audio and video). /// Note that muxed streams are limited in quality and don't go beyond 720p30. Iterable get muxed => streams.whereType(); /// Gets audio-only streams (no video). Iterable get audioOnly => streams.whereType(); /// Gets video-only streams (no audio). /// These streams have the widest range of qualities available. Iterable get videoOnly => streams.whereType(); }