yanchengPowerSupply/node_modules/videojs-contrib-media-sources/docs/api/create-text-tracks-if-neces...

110 lines
4.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Source: create-text-tracks-if-necessary.js</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Source: create-text-tracks-if-necessary.js</h1>
<section>
<article>
<pre class="prettyprint source linenums"><code>/**
* @file create-text-tracks-if-necessary.js
*/
/**
* Create text tracks on video.js if they exist on a segment.
*
* @param {Object} sourceBuffer the VSB or FSB
* @param {Object} mediaSource the HTML or Flash media source
* @param {Object} segment the segment that may contain the text track
* @private
*/
const createTextTracksIfNecessary = function(sourceBuffer, mediaSource, segment) {
const player = mediaSource.player_;
// create an in-band caption track if one is present in the segment
if (segment.captions &amp;&amp;
segment.captions.length) {
if (!sourceBuffer.inbandTextTracks_) {
sourceBuffer.inbandTextTracks_ = {};
}
for (let trackId in segment.captionStreams) {
if (!sourceBuffer.inbandTextTracks_[trackId]) {
player.tech_.trigger({type: 'usage', name: 'hls-608'});
let track = player.textTracks().getTrackById(trackId);
if (track) {
// Resuse an existing track with a CC# id because this was
// very likely created by videojs-contrib-hls from information
// in the m3u8 for us to use
sourceBuffer.inbandTextTracks_[trackId] = track;
} else {
// Otherwise, create a track with the default `CC#` label and
// without a language
sourceBuffer.inbandTextTracks_[trackId] = player.addRemoteTextTrack({
kind: 'captions',
id: trackId,
label: trackId
}, false).track;
}
}
}
}
if (segment.metadata &amp;&amp;
segment.metadata.length &amp;&amp;
!sourceBuffer.metadataTrack_) {
sourceBuffer.metadataTrack_ = player.addRemoteTextTrack({
kind: 'metadata',
label: 'Timed Metadata'
}, false).track;
sourceBuffer.metadataTrack_.inBandMetadataTrackDispatchType =
segment.metadata.dispatchType;
}
};
export default createTextTracksIfNecessary;
</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="FlashMediaSource.html">FlashMediaSource</a></li><li><a href="FlashSourceBuffer.html">FlashSourceBuffer</a></li><li><a href="HtmlMediaSource.html">HtmlMediaSource</a></li><li><a href="MessageHandlers.html">MessageHandlers</a></li><li><a href="VirtualSourceBuffer.html">VirtualSourceBuffer</a></li></ul><h3>Global</h3><ul><li><a href="global.html#abort">abort</a></li><li><a href="global.html#addSourceBuffer">addSourceBuffer</a></li><li><a href="global.html#appendBuffer">appendBuffer</a></li><li><a href="global.html#appendGopInfo_">appendGopInfo_</a></li><li><a href="global.html#endOfStream">endOfStream</a></li><li><a href="global.html#FlashTransmuxerWorker">FlashTransmuxerWorker</a></li><li><a href="global.html#get">get</a></li><li><a href="global.html#gopsSafeToAlignWith">gopsSafeToAlignWith</a></li><li><a href="global.html#MediaSource">MediaSource</a></li><li><a href="global.html#open">open</a></li><li><a href="global.html#remove">remove</a></li><li><a href="global.html#removeGopBuffer">removeGopBuffer</a></li><li><a href="global.html#set">set</a></li><li><a href="global.html#supportsNativeMediaSources">supportsNativeMediaSources</a></li><li><a href="global.html#TransmuxerWorker">TransmuxerWorker</a></li><li><a href="global.html#updateGopBuffer">updateGopBuffer</a></li><li><a href="global.html#URL">URL</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.4</a> on Thu Nov 02 2017 12:03:25 GMT-0400 (EDT)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>