# All files / src is-supported.ts

0% Statements 0/7
0% Branches 0/13
0% Functions 0/1
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

     import { getMediaSource } from './utils/mediasource-helper';

    export function isSupported (): boolean {
      const mediaSource = getMediaSource();
      if (!mediaSource) {
        return false;
      }
      const sourceBuffer = SourceBuffer || (window as any).WebKitSourceBuffer;
      const isTypeSupported = mediaSource &&
        typeof mediaSource.isTypeSupported === 'function' &&
        mediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"');

      // if SourceBuffer is exposed ensure its API is valid
      // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible
      const sourceBufferValidAPI = !sourceBuffer ||
        (sourceBuffer.prototype &&
          typeof sourceBuffer.prototype.appendBuffer === 'function' &&
          typeof sourceBuffer.prototype.remove === 'function');
      return !!isTypeSupported && !!sourceBufferValidAPI;
    }