Реагировать ES6: Dash.js , Медиаплеер не является функцией

#javascript #reactjs

#javascript #reactjs

Вопрос:

Я пытаюсь создать компонент на ReactJS, который в основном оборачивает [Dash.js ][1] веб-плеер для работы с форматом MPEG-DASH.

То, что у меня есть в моем файле:

 import React, { Component } from 'react'
import dashjs from 'dashjs/dist/dash.all.min.js'

export default class Player extends Component {

    constructor(props){
        super(props);
        this.classRef = React.createRef(null);
        this.src = props.src;
    }

    componentDidMount(){
        const video = this.classRef.current;
        const player = dashjs.MediaPlayer().create();

        player.initialize(video, this.src, true);
        
    }
    
    render() {
        return (
            <video
                ref={this.classRef}
            />
        )
    }
}
 

который возвращает сообщение в браузере dashjs_dist_dash_all_min_js__WEBPACK_IMPORTED_MODULE_2___default.a.MediaPlayer не является функцией, указывая на ошибку во второй строке метода componentDidMount.

Я просматриваю исходный код, присутствующий на dash.all.debug.js чтобы узнать, как мне следует обращаться с объектом MediaPlayer, и что у меня есть, так это то, что MediaPlayer действительно является функцией:

 function MediaPlayer() {
   (... ommited)
}
 

С успехом я создал компонент на shaka-player, используя почти тот же метод упаковки его проигрывателя. Честно говоря. На самом деле у меня нет такого опыта работы с javascript, чтобы точно понимать, что происходит. Может быть, кто-то знает что-то очевидное, чего я не вижу?

Спасибо. [1]: https://github.com/Dash-Industry-Forum/dash.js

Ответ №1:

Ваш оператор импорта должен быть таким, как показано ниже

 import dashjs from 'dashjs'