no commit message

This commit is contained in:
niandeng
2020-09-17 18:40:01 +08:00
parent 4382915d09
commit d957abceaa
283 changed files with 86935 additions and 63 deletions
@@ -0,0 +1,58 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mangui.osmf.plugins.traits {
import org.mangui.hls.HLS;
import org.mangui.hls.event.HLSEvent;
import org.mangui.hls.model.Level;
import org.osmf.traits.MediaTraitBase;
CONFIG::LOGGING {
import org.mangui.hls.utils.Log;
}
public class HLSClosedCaptionsTrait extends MediaTraitBase {
private var _hls : HLS;
private var _hasClosedCapations : String;
public function HLSClosedCaptionsTrait(hls : HLS, closed_captions : String = HLSClosedCaptionsState.UNKNOWN) {
CONFIG::LOGGING {
Log.debug("HLSClosedCaptionsTrait()");
}
super(HLSMediaTraitType.CLOSED_CAPTIONS);
_hasClosedCapations = closed_captions;
_hls = hls;
_hls.addEventListener(HLSEvent.LEVEL_SWITCH, _levelSwitchHandler);
}
override public function dispose() : void {
CONFIG::LOGGING {
Log.debug("HLSClosedCaptionsTrait:dispose");
}
_hls.removeEventListener(HLSEvent.LEVEL_SWITCH, _levelSwitchHandler);
super.dispose();
}
public function hasClosedCaptions() : String {
return _hasClosedCapations;
}
/** Update playback position/duration **/
private function _levelSwitchHandler(event : HLSEvent) : void {
var cc : String = (_hls.levels[event.level] as Level).closed_captions;
if (cc && cc === "NONE")
{
// manifest told us to ignore any 608/708 binary
_hasClosedCapations = HLSClosedCaptionsState.NO;
}
else
{
_hasClosedCapations = HLSClosedCaptionsState.UNKNOWN;
}
// YES only happens for WebVTT, which isn't supported.
}
}
}