summaryrefslogtreecommitdiff
path: root/javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js')
-rw-r--r--javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js b/javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js
new file mode 100644
index 0000000..88f287b
--- /dev/null
+++ b/javascript/videojs/src/js/control-bar/volume-control/check-volume-support.js
@@ -0,0 +1,31 @@
+/** @import Component from '../../component' */
+/** @import Player from '../../player' */
+
+/**
+ * Check if volume control is supported and if it isn't hide the
+ * `Component` that was passed using the `vjs-hidden` class.
+ *
+ * @param {Component} self
+ * The component that should be hidden if volume is unsupported
+ *
+ * @param {Player} player
+ * A reference to the player
+ *
+ * @private
+ */
+const checkVolumeSupport = function(self, player) {
+ // hide volume controls when they're not supported by the current tech
+ if (player.tech_ && !player.tech_.featuresVolumeControl) {
+ self.addClass('vjs-hidden');
+ }
+
+ self.on(player, 'loadstart', function() {
+ if (!player.tech_.featuresVolumeControl) {
+ self.addClass('vjs-hidden');
+ } else {
+ self.removeClass('vjs-hidden');
+ }
+ });
+};
+
+export default checkVolumeSupport;