youtube_explode/lib/src/videos/streams/stream_container.dart

42 lines
1.0 KiB
Dart
Raw Normal View History

2020-06-03 13:18:37 +02:00
import 'package:equatable/equatable.dart';
/// Stream container.
class StreamContainer with EquatableMixin {
2020-06-03 13:18:37 +02:00
/// Container name.
/// Can be used as file extension
final String name;
/// Initializes an instance of [StreamContainer]
StreamContainer._(this.name);
2020-06-03 13:18:37 +02:00
/// MPEG-4 Part 14 (.mp4).
static final StreamContainer mp4 = StreamContainer._('mp4');
2020-06-03 13:18:37 +02:00
/// Web Media (.webm).
static final StreamContainer webM = StreamContainer._('webm');
2020-06-03 13:18:37 +02:00
/// 3rd Generation Partnership Project (.3gpp).
static final StreamContainer tgpp = StreamContainer._('3gpp');
2020-06-03 13:18:37 +02:00
/// Parse a container from name.
static StreamContainer parse(String name) {
2020-06-03 13:18:37 +02:00
if (name.toLowerCase() == 'mp4') {
return StreamContainer.mp4;
2020-06-03 13:18:37 +02:00
}
if (name.toLowerCase() == 'webm') {
return StreamContainer.webM;
2020-06-03 13:18:37 +02:00
}
if (name.toLowerCase() == '3gpp') {
return StreamContainer.tgpp;
2020-06-03 13:18:37 +02:00
}
throw ArgumentError.value(name, 'name', 'Valid values: mp4, webm, 3gpp');
}
@override
List<Object> get props => [name];
2020-07-21 11:40:30 +02:00
@override
String toString() => name;
2020-06-03 13:18:37 +02:00
}