Как реализовать wavesurfer-js в машинописи

Я использую приложение wavesurfer-js angular 6, плеер открывается без элементов управления, а также с ошибкой говорит:

Uncaught TypeError: Невозможно прочитать свойство 'wavesurfer' из неопределенного

Вот мой код TS:

import { Component, AfterViewInit, OnInit } from '@angular/core';
import { MatBottomSheetRef } from '@angular/material';
import WaveSurfer from 'wavesurfer.js';
import VideojsWavesurfer from 'videojs-wavesurfer';
import SpectrogramPlugin from 
'wavesurfer.js/dist/plugin/wavesurfer.spectrogram.min.js';
@Component({
  selector: 'app-audio-page',
  templateUrl: './audio-page.component.html',
  styleUrls: ['./audio-page.component.scss'],
})
export class AudioPageComponent implements OnInit {
  public wavesurfer: WaveSurfer;
  constructor(private bottomSheetRef: 
MatBottomSheetRef<AudioPageComponent>){ }

  ngOnInit() {
    let audiofile = 
 "https://ia902606.us.archive.org/35/items/shortpoetry_047_librivox
/song_cjrg_teasdale_64kb.mp3"
    this.wavesurfer = WaveSurfer.create({
  container: '#waveform',
  height:100,
  waveColor : 'red',
  scrollParent: true,
  progressColor: 'purple',
  plugins: [
      SpectrogramPlugin.create({
          container: "#wave-spectrogram"
      })
  ]
});

this.wavesurfer.load(audiofile);        

  this.wavesurfer.on('ready', function () {
      this.wavesurfer.play();
  });

 }

} 

и мой HTML:

  <div id="waveform"></div>
  <div id="wave-spectrogram"></div>

1 ответ

Шаг 1. Включите wavesurfer.js в index.html вашего проекта Angular.

      <script src="https://unpkg.com/wavesurfer.js"></script>

Шаг 2 В компоненте, который вы хотите использовать WaveSufer, сразу после импорта добавьте:

      declare var WaveSurfer;

Шаг 3 Объявите переменную в своем классе

      protected waveSurfer = null;

Шаг 4 Создайте экземпляр:

      this.waveSurfer = WaveSurfer.create({
   container:'#my-wave-div'
});
Другие вопросы по тегам