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.
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"