codevise/pageflow

View on GitHub
package/src/frontend/media/createMediaPlayer.js

Summary

Maintainability
A
1 hr
Test Coverage
import {browser} from '../browser';
import {VideoPlayer} from '../VideoPlayer';

export const createMediaPlayer = function (options) {
  let isAudio = options.tagName == 'AUDIO';

  const player = new VideoPlayer(options.mediaElement, {
    controlBar: false,
    loadingSpinner: false,
    bigPlayButton: false,
    errorDisplay: false,
    textTrackSettings: false,
    poster: options.poster,
    loop: options.loop,
    controls: options.controls,
    html5: {
      nativeCaptions: !isAudio && browser.has('iphone platform'),
      // Only used by pageflow-scrolled
      vhs: {
        useBandwidthFromLocalStorage: true,
        usePlayerObjectFit: true
      }
    },
    bufferUnderrunWaiting: true,
    fallbackToMutedAutoplay: !isAudio,

    ignoreVolumeSetting: true,
    volumeFading: true,
    hooks: {},

    mediaEvents: true,
    context: null
  });

  player.textTrackSettings = {
    getValues() {
      return {};
    }
  };

  player.playOrPlayOnLoad = function () {
    if (this.readyState() > 0) {
      player.play();
    } else {
      player.on('loadedmetadata', player.play);
    }
  };

  player.addClass('video-js');
  player.addClass('player');

  return player;
};