Angular 5无法播放音频文件

Angular 5无法播放音频文件,angular,html,html5-audio,Angular,Html,Html5 Audio,我有一个角度5项目。它从数据库中获取文件路径并播放它们。但我的一些文件名类似于“[Teknik Servis%3A905533837273]_05533837273-630_20181005104235(160133).wav”,包括特殊字符,如:,[]等。。所以当我播放这个文件时 未捕获(承诺中)DOMEException:未能加载,因为找不到支持的源。控制台出错。%3A是“:”字符,所以当我调用url浏览器时,可能会尝试更改它,从而导致错误。但是在播放像“[630 Selcuk]\u 630

我有一个角度5项目。它从数据库中获取文件路径并播放它们。但我的一些文件名类似于“[Teknik Servis%3A905533837273]_05533837273-630_20181005104235(160133).wav”,包括特殊字符,如:,[]等。。所以当我播放这个文件时 未捕获(承诺中)DOMEException:未能加载,因为找不到支持的源。控制台出错。%3A是“:”字符,所以当我调用url浏览器时,可能会尝试更改它,从而导致错误。但是在播放像“[630 Selcuk]\u 630-140\u 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();
    }

  }

例如,您需要使用
encodeURIComponent()
对文件名进行编码

this.audio.src = encodeURIComponent(filepath);

试着这样使用它:
this.audio.src=encodeURIComponent(filepath)