Использование WaveSurfer.js v2 в компоненте React

Я пытаюсь использовать WaveSurfer.js (версия 2) с React. Я знаю, что для версии 1 была библиотека под названием response-wavesurfer, но я действительно хочу сделать это с помощью v2. Я уже сталкивался с этим без React. Итак, я только что сделал свой компонент.

Как вы можете видеть в приведенном ниже коде, все работает отлично, объект WaveSurfer создается правильно в componentDidMount(), но затем, внезапно, в методе load() возникает ошибка, которую я не могу правильно понять.

Эта ошибка выдается после load(), и после ошибки, она регистрируется в консоли "Вот и происходит!" и волновое свойство состояния, как и должно быть.

Это ошибка, о которой идет речь и само по себе это ничего не значит. Это просто ошибка без трассировки стека в обфусцированной функции в наложении response-error-overlay. Вторая ошибка, DOMException, напрямую вызвана первой, и каждый раз они объединяются.

Это строка оверлея реакции-ошибки, вызывающий ошибку напрямую в /node_modules/react-error-overlay/index.js:1582, но запутанный.

// ... various imports

class Track extends Component {
    wavref = null;

    constructor(props) {
        super(props);

        let id = this.props.id;

        this.state = {
            id: id,
            wave: null
        };
    }

    load() {
        console.info(this.state.wave, this.props.audio); // this.props.audio is the correct path, and should work correctly: "../../demo.wav".
        this.state.wave.load(this.props.audio);
        console.info("There it happens!", this.state.wave);
    }

    componentDidMount() {
        let generatedWave = WaveSurfer.create({
            container: ReactDOM.findDOMNode(this.waveref),
            waveColor: this.state.color,
            progressColor: this.state.progressColor,
            plugins: [
                RegionsPlugin.create({
                    dragSelection: {
                        slop: 5
                    }
                }),
                CursorPlugin.create({})
            ]
        });

        this.setState({
            wave: generatedWave,
        }, function() {
            this.load();
        });
    }

    render() {
        return(
            <div ref = {(waveref) => this.waveref = waveref}></div>
        );
    }
}

export default Track;

Очевидно, что метод load() не загружает / не отображает реальную волну на холсте WaveSurfer и выдает эту ошибку. Я не могу понять почему, потому что он должен просто нормально работать и отображать волну на холсте WaveSurfer.

Кто-нибудь из вас знает, в чем может быть ошибка?

У меня такая же проблема. Вы когда-нибудь находили решение этой проблемы?

Jamie_D 05.07.2019 04:46

Нет! Прошу прощения за поздний ответ :( Я только что забросил этот проект

DanielVip3 17.05.2020 18:20

Я тоже ... спасибо за ответ!

Jamie_D 22.05.2020 04:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
3
1 085
0

Другие вопросы по теме