class M3U8::MapItem
- M3U8::MapItem
- Reference
- Object
Overview
MapItem
represents an EXT-X-MAP
tag in an HLS playlist.
The EXT-X-MAP
tag (defined in RFC 8216, Section 4.3.2.5)
specifies how to obtain the Media Initialization Section, which is required to parse the Media Segments.
For example, a valid EXT-X-MAP
tag might look like:
#EXT-X-MAP:URI="frelo/prog_index.m3u8",BYTERANGE="4500@600"
The MapItem
class stores the following properties:
#uri
(String): the URI for the Media Initialization Section.#byterange
(ByteRange
): the byte range indicating which part of the resource to use.
Included Modules
- M3U8::Concern
Extended Modules
- M3U8::Concern
Defined in:
m3u8/map_item.crConstructors
-
.new(params : NamedTuple = NamedTuple.new)
Constructs a new
MapItem
instance from a NamedTuple of parameters. -
.new(uri : String, byterange = nil)
Initializes a new
MapItem
instance.
Class Method Summary
-
.parse(text)
Parses a string representing an
EXT-X-MAP
tag and returns a newMapItem
instance.
Instance Method Summary
-
#byterange : ByteRange
The byte range indicating which part of the resource to use.
-
#byterange=(byterange : ByteRange)
The byte range indicating which part of the resource to use.
-
#to_s
Returns the string representation of the
EXT-X-MAP
tag. -
#uri : String
The URI for the Media Initialization Section.
-
#uri=(uri : String)
The URI for the Media Initialization Section.
Constructor Detail
Constructs a new MapItem
instance from a NamedTuple of parameters.
The NamedTuple can include the following keys:
:uri
(String): the URI for the initialization section.:byterange
(can be a Hash, a NamedTuple, aByteRange
instance, or a String like "4500@600").
Examples:
options = {
uri: "frelo/prog_index.m3u8",
byterange: {length: 4500, start: 600},
}
MapItem.new(options)
# => #<M3U8::MapItem:0x7adc917c08a0
# @byterange=#<M3U8::ByteRange:0x7adc91795d50 @length=4500, @start=600>,
# @uri="frelo/prog_index.m3u8">
options = {
uri: "frelo/prog_index.m3u8",
byterange: ByteRange.new(length: 4500, start: 600),
}
MapItem.new(options)
# => #<M3U8::MapItem:0x7adc917c01e0
# @byterange=#<M3U8::ByteRange:0x7adc91795c60 @length=4500, @start=600>,
# @uri="frelo/prog_index.m3u8">
options = {
uri: "frelo/prog_index.m3u8",
byterange: "4500@600",
}
MapItem.new(options)
# => #<M3U8::MapItem:0x7adc917c1ba0
# @byterange=#<M3U8::ByteRange:0x7adc91795b70 @length=4500, @start=600>,
# @uri="frelo/prog_index.m3u8">
Initializes a new MapItem
instance.
Accepts a #uri
as the first parameter and an optional #byterange
parameter,
which is passed to ByteRange.parse
.
Examples:
uri = "frelo/prog_index.m3u8"
byterange = "4500@600"
MapItem.new(uri)
MapItem.new(uri: uri)
# => #<M3U8::MapItem:0x789a5325c760
# @byterange=#<M3U8::ByteRange:0x789a5322e8a0 @length=nil, @start=nil>,
# @uri="frelo/prog_index.m3u8">
MapItem.new(uri, byterange)
MapItem.new(uri: uri, byterange: byterange)
# => #<M3U8::MapItem:0x789a5325c0a0
# @byterange=#<M3U8::ByteRange:0x789a5322e7b0 @length=4500, @start=600>,
# @uri="frelo/prog_index.m3u8">
Class Method Detail
Parses a string representing an EXT-X-MAP
tag and returns a new MapItem
instance.
The method extracts attributes from the tag line using parse_attributes
and
converts the #byterange
value using ByteRange.parse
.
Example:
text = %(#EXT-X-MAP:URI="frelo/prog_index.m3u8",BYTERANGE="4500@600")
MapItem.parse(text)
# => #<M3U8::MapItem:0x79d016ab9f60
# @byterange=#<M3U8::ByteRange:0x79d016a8ee40 @length=4500, @start=600>,
# @uri="frelo/prog_index.m3u8">
Instance Method Detail
The byte range indicating which part of the resource to use.
The byte range indicating which part of the resource to use.
Returns the string representation of the EXT-X-MAP
tag.
It concatenates the formatted #uri
and #byterange
attributes, separated by commas,
and prefixes the result with #EXT-X-MAP:
.
Example:
options = {
uri: "frelo/prog_index.m3u8",
byterange: "4500@600",
}
MapItem.new(options).to_s
# => #EXT-X-MAP:URI="frelo/prog_index.m3u8",BYTERANGE="4500@600"