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

61 lines
1.2 KiB
Dart
Raw Normal View History

2021-10-04 13:00:22 +02:00
import 'package:http_parser/http_parser.dart';
import 'package:json_annotation/json_annotation.dart';
2021-10-04 13:00:22 +02:00
2021-09-28 16:49:38 +02:00
import '../../reverse_engineering/models/fragment.dart';
import 'stream_info.dart';
2020-06-05 16:17:08 +02:00
import 'streams.dart';
2020-06-03 13:18:37 +02:00
part 'audio_only_stream_info.g.dart';
2020-06-03 13:18:37 +02:00
/// YouTube media stream that only contains audio.
@JsonSerializable()
class AudioOnlyStreamInfo with StreamInfo, AudioStreamInfo {
@override
final int tag;
@override
final Uri url;
@override
final StreamContainer container;
@override
final FileSize size;
@override
final Bitrate bitrate;
@override
final String audioCodec;
@override
@JsonKey(toJson: mediaTypeTojson, fromJson: mediaTypeFromJson)
final MediaType codec;
@override
final List<Fragment> fragments;
@override
final String qualityLabel;
2021-09-28 16:49:38 +02:00
AudioOnlyStreamInfo(
this.tag,
this.url,
this.container,
this.size,
this.bitrate,
this.audioCodec,
this.qualityLabel,
this.fragments,
this.codec);
2020-06-03 13:18:37 +02:00
@override
String toString() => 'Audio-only ($tag | $container)';
factory AudioOnlyStreamInfo.fromJson(Map<String, dynamic> json) =>
_$AudioOnlyStreamInfoFromJson(json);
2022-02-03 12:06:09 +01:00
@override
Map<String, dynamic> toJson() => _$AudioOnlyStreamInfoToJson(this);
2020-06-03 13:18:37 +02:00
}