【问题标题】:Angular 5 can not play audio filesAngular 5 无法播放音频文件
【发布时间】:2019-03-31 17:33:52
【问题描述】:

我有一个 Angular 5 项目。它从数据库中获取文件路径并播放它们。但是我的一些文件名类似于'[Teknik-Servis%3A905533837273]_05533837273-630_20181005104235(160133).wav' 并包括特殊字符,如 :,[] % 等。所以当我播放这个文件时,我得到了 未捕获(承诺)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();
    }

  }

【问题讨论】:

  • 尝试像这样使用它:this.audio.src = encodeURIComponent(filepath);

标签: angular html html5-audio


【解决方案1】:

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

this.audio.src = encodeURIComponent(filepath);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多