HTML::Object::DOM::TextTrackList - HTML Object DOM Track List Class
use HTML::Object::DOM::TextTrackList; my $list = HTML::Object::DOM::TextTrackList->new || die( HTML::Object::DOM::TextTrackList->error, "\n" );
Getting a video element's text track list:
my $textTracks = $doc->querySelector( 'video' )->textTracks;
Monitoring track count changes:
$textTracks->onaddtrack = \&updateTrackCount; $textTracks->onremovetrack = \&updateTrackCount; sub updateTrackCount { my $event = shift( @_ ); my $trackCount = $textTracks->length; drawTrackCountIndicator( $trackCount ); }
v0.2.0
The TextTrackList interface is used to represent a list of the text tracks defined by the <track> element, with each track represented by a separate textTrack object in the list. It inherits from HTML::Object::EventTarget
TextTrackList
<track
+-----------------------+ +---------------------------+ +-------------------------+ +----------------------------------+ | HTML::Object::Element | --> | HTML::Object::EventTarget | --> | HTML::Object::DOM::List | --> | HTML::Object::DOM::TextTrackList | +-----------------------+ +---------------------------+ +-------------------------+ +----------------------------------+
Inherits properties from its parent HTML::Object::DOM::List
The number of tracks in the list.
Example:
my $media = $doc->querySelector( 'video, audio' ); my $numTextTracks = 0; if( $media->textTracks ) { $numTextTracks = $media->textTracks->length; }
See also Mozilla documentation
Inherits methods from its parent HTML::Object::DOM::List
Set a new event listener for the provided event type. See HTML::Object::EventTarget
Set or get an array object of elements.
Provided with a callback code reference and this will call it for each child element.
See "foreach" in Module::Generic::Array
Returns the TextTrack found within the TextTrackList whose id matches the specified string. If no match is found, undef is returned.
undef
my $theTrack = $TextTrackList->getTrackById( $id );
Fired when a new text track has been added to the media element. Also available via the onaddtrack property.
my $mediaElement = $doc->querySelector( 'video, audio' ); $mediaElement->textTracks->addEventListener( addtrack => sub { my $event = shift( @_ ); say( "Text track: ", $event->track->label, " added" ); }); my $mediaElement = $doc->querySelector( 'video, audio' ); $mediaElement->textTracks->onaddtrack = sub { my $event = shift( @_ ); say( "Text track: ", $event->track->label, " added" ); };
Fired when a text track has been made active or inactive. Also available via the onchange property.
my $mediaElement = $doc->querySelectorAll( 'video, audio' )->[0]; $mediaElement->textTracks->addEventListener( change => sub { my $event = shift( @_ ); say( "'", $event->type, "' event fired" ); }); my $mediaElement = $doc->querySelector( 'video, audio' ); $mediaElement->textTracks->onchange = sub { say( "'", $event->type, "' event fired" ); };
Fired when a new text track has been removed from the media element. Also available via the onremovetrack property.
my $mediaElement = $doc->querySelector( 'video, audio' ); $mediaElement->textTracks->addEventListener( removetrack => sub { my $event = shift( @_ ); say( "Text track: ", $event->track->label, " removed" ); }); my $mediaElement = $doc->querySelector( 'video, audio' ); $mediaElement->textTracks->onremovetrack = sub { my $event = shift( @_ ); say( "Text track: ", $event->track->label, " removed" ); };
An event handler to be called when the addtrack event is fired, indicating that a new text track has been added to the media element.
addtrack
$doc->querySelector( 'video' )->textTracks->onaddtrack = sub { my $event = shift( @_ ); addToTrackList( $event->track ); };
An event handler to be called when the change event occurs.
my $trackList = $doc->querySelector( 'video, audio' )->textTracks; $trackList->onchange = sub { my $event = shift( @_ ); #.... do something };
An event handler to call when the removetrack event is sent, indicating that a text track has been removed from the media element.
$doc->querySelectorAll( 'video, audio' )->[0].textTracks->onremovetrack = sub { my $event = shift( @_ ); myTrackCount = $doc->querySelectorAll( 'video, audio' )->[0]->textTracks->length; };
Jacques Deguest <jack@deguest.jp>
Mozilla documentation
Copyright(c) 2021 DEGUEST Pte. Ltd.
All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install HTML::Object, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTML::Object
CPAN shell
perl -MCPAN -e shell install HTML::Object
For more information on module installation, please visit the detailed CPAN module installation guide.