Воспроизведение аудио файла WAV в Edge с Angular / Javascript - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть следующий код в Angular для воспроизведения загруженного файла WAV:

<input #fileImportInput (change)="fileChangeListener($event)" />
<audio #myAudio controls controlsList="nodownload">
  <source src="" />
</audio>

audioElement: HTMLAudioElement;
@ViewChild('myAudio', { static: true }) myAudio: any;

ngOnInit() {
  this.audioElement = this.myAudio.nativeElement;
}

fileChangeListener(files: any): void {
  const inputFile = files.target.files[0];
  if (window.URL && window.URL.createObjectURL) {
    this.audioSrcURL = window.URL.createObjectURL(inputFile);
    this.audioElement.src = this.audioSrcURL;
  }
}

Вышеописанное работает в Chrome и Firefox, но не работает в Edge 44 (18). Как я могу воспроизвести файл WAV в Edge?

1 Ответ

0 голосов
/ 11 февраля 2020

Попробуйте использовать инструменты разработчика F12, чтобы проверить, есть ли какая-либо ошибка в браузере Edge, и успешно ли установлен аудиоисточник, если ошибки нет, а аудиоустройство установлено успешно, попробуйте вызвать . Метод play () для воспроизведения звука.

Кроме того, здесь есть семпл с использованием JavaScript для загрузки воспроизводимого аудиофайла, вы можете обратиться к нему:

    <input type="file" id="input" />
    <audio id="sound" controls="controls">
        <source src="" />
    </audio>

    <script type="text/javascript">
         var input = document.getElementById('input');
        input.onchange = function (e) {
            var sound = document.getElementById('sound');
            sound.src = URL.createObjectURL(this.files[0]);
            // not really needed in this exact case, but since it is really important in other cases,
            // don't forget to revoke the blobURI when you don't need it
            sound.onend = function (e) {
                URL.revokeObjectURL(this.src);
            }
        }
    </script>
...