Angular 5 не может воспроизводить аудио файлы - PullRequest
0 голосов
/ 27 октября 2018

У меня есть проект Angular 5.Получение путей к файлам из базы данных и их воспроизведение.Но некоторые из моих имен файлов похожи на '[Teknik-Ser%% 3A905533837273] _05533837273-630_20181005104235 (160133) .wav' и включают в себя специальные символы, такие как:, []% и т. Д. Поэтому, когда я играю в этом файле, я получаю Uncaught (в обещании) DOMException: не удалось загрузить, поскольку не найден поддерживаемый источник. Ошибка на консоли.% 3A является символом ':', поэтому, когда я вызываю url, возможно, браузер пытается изменить его, чтобы получить ошибку.Но при воспроизведении этого имени файла, например, «[630 Selcuk] _630-140_20180919082432 (76142) .wav», проблем нет. Есть ли способ воспроизвести эти аудиофайлы, которые имеют специальные символы (% 3A,% 5B) в своих именах файлов?

Моя функция воспроизведения звука;

    playAudio(filepath) {

    let filename= filepath.replace(/^.*(\\|\/|\:)/, '');
    console.log(filepath);
   if (this.audio.src.replace(/^.*(\\|\/|\:)/, '') == filename) {
  // if(this.audio.src==filepath){
      if (this.audio.paused)
        this.audio.play();
      else
        this.audio.pause();
    }
    else {
      this.audio.pause();
      this.audio = new Audio();

      this.audio.src = filepath;
      this.audio.load();
      this.audio.play();
    }

  }

1 Ответ

0 голосов
/ 27 октября 2018

Вам необходимо закодировать имена файлов, например, encodeURIComponent().

this.audio.src = encodeURIComponent(filepath);
...