Angular5无法播放音频文件
Angular 5 can not play audio files
我有一个 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();
}
}
例如,您需要使用 encodeURIComponent()
对文件名进行编码。
this.audio.src = encodeURIComponent(filepath);
我有一个 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();
}
}
例如,您需要使用 encodeURIComponent()
对文件名进行编码。
this.audio.src = encodeURIComponent(filepath);