no commit message
This commit is contained in:
@@ -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.
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user