@UncleDenn

Почему dash.js выдает ошибку?

Всем привет,не могу разобраться со скриптом плеера
выдает ошибку в консоль Uncaught ReferenceError: Dash is not defined
при этом формат HLS работает
var VIDEO_CONTROL = document.getElementById('vidHLS');
var BITRATE_CONTROL = document.getElementById('ddlOptions');

var newHls = null;

$(document).ready(function () {
    $("#btnLoad").click(function () {

        if (newHls != null) {
            newHls.Desrtoy();
        }

        var url = $("#txtURL").val();
        var bitrate = $(BITRATE_CONTROL).val();

        newHls = new myHls(VIDEO_CONTROL, bitrate, url);
        newHls.Play();
    });
    $("#btnLoad2").click(function () {

        if (newHls != null) {
            newHls.Desrtoy();
        }

        var url = $("#txtURL2").val();
        var bitrate = $(BITRATE_CONTROL).val();

        newHls = new myHls(VIDEO_CONTROL, bitrate, url);
        newHls.Play();
    });

    $("#ddlOptions").change(function () {
        var bitrate = $(BITRATE_CONTROL).val();

        if (newHls != null) {
            newHls.ChangeLevel(bitrate);
        }
    });
});

var myHls = function (VideoControl, Bitrate, Url) {
    var _video = VideoControl;
    var _bitrate = Bitrate;
    var _url = Url;

    var _IsHLS = function () {
        var ext = (_url.substring(0, 1) === '.' ? '' : _url.split('.').slice(1).pop() || '');
        return (ext === 'm3u8');
    }

    var _obj = null;

    function _Play() {

        if (_IsHLS()) {
            if (typeof (Hls) === 'undefined') throw new Error('hls.js not loaded');
            _obj = new Hls();

            if (Hls.isSupported()) {
                _obj.loadSource(_url);
                _obj.attachMedia(_video);

                _obj.on(Hls.Events.MANIFEST_PARSED, function () {
                    _video.play();
                    _ChangeLevel(_bitrate);
                });
            }
        } else {
            var context = new Dash.di.DashContext();

            _obj = new MediaPlayer(context);
            _obj.startup();
            _obj.setAutoPlay(true);
            _obj.attachView(_video);
            _obj.attachSource(_url);
            _ChangeLevel(_bitrate);
        }
    }

    function _ChangeLevel(level) {
        if (_IsHLS()) {
            _obj.loadLevel = level;
        }
        else {
            _obj.setAutoSwitchQuality(false);
            _obj.setQualityFor('video', parseInt(level));
        }
    }

    function _Desrtoy() {
        if (_IsHLS()) {
            _obj.destroy();
        } else if(_obj !== null) {
            _obj.reset();
        }else {
            _Play;
        }
    }

    return {
        Play: _Play,
        ChangeLevel: _ChangeLevel,
        Desrtoy: _Desrtoy
    }
}

что не так?
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Посмотрите тут обсуждение такой же ошибки - https://github.com/Dash-Industry-Forum/dash.js/iss...
Убедитесь что dash.js у вас подключен на странице и что вы используете последнюю стабильную версию скрипта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы