如何使用Javascript从外部url播放音频文件?

如何使用Javascript从外部url播放音频文件?,javascript,audio,html5-audio,wav,Javascript,Audio,Html5 Audio,Wav,我有一个应用程序(A),它向另一个应用程序(B)发出ajax请求,以获取wave sound文件的链接。然后,我想使用链接直接从我的应用程序(A)播放该声音文件 我试图创建一个新的audio标记,但控制台中出现以下错误 含铬 无法播放…不支持错误:无法加载,因为没有 找到了支持的源 在FireFox中 无法播放…不支持错误:由指示的媒体资源 src属性或分配的媒体提供程序对象不合适 下面是我的回调方法,它是在ajax请求与我的应用程序(B)的链接一起返回后触发的 如何才能成功地播放此wav文件?

我有一个应用程序(A),它向另一个应用程序(B)发出ajax请求,以获取wave sound文件的链接。然后,我想使用链接直接从我的应用程序(A)播放该声音文件

我试图创建一个新的
audio
标记,但控制台中出现以下错误

含铬

无法播放…不支持错误:无法加载,因为没有 找到了支持的源

在FireFox中

无法播放…不支持错误:由指示的媒体资源 src属性或分配的媒体提供程序对象不合适

下面是我的回调方法,它是在ajax请求与我的应用程序(B)的链接一起返回后触发的


如何才能成功地播放此wav文件?

请在HTML 5
标记中使用它


HTML5可以在不使用JavaScript的情况下播放和控制任何音频格式。

音频可以跨服务器正常工作,无需其他问题,请参见下面的示例

这不起作用的原因有很多:

  • 检查网络选项卡以确保wav文件位于正确位置
  • 检查控制台是否有任何关于无法加载的原因的警告消息
  • 检查此项以了解其他调试步骤
  • 发回您试图从中获取的URL,或有关请求的其他信息
异步函数playAudio(){
var audio=新音频文件('https://file-examples.com/wp-content/uploads/2017/11/file_example_WAV_1MG.wav');  
audio.type='audio/wav';
试一试{
等待音频。播放();
console.log('Playing…');
}捕捉(错误){
console.log('未能播放…'+错误);
}
}

此代码对我无效。当我点击“播放音频”链接时,什么也不播放。@MikeA你在哪个浏览器中试用它?您使用的是最新版本吗?我使用的是
FireFox 57.0.2(64位)
,另一个注意事项是,当创建一个fiddle时,代码工作文件@MikeA FireFox不喜欢
href=“javascript:bleh
,但我已经更新了我的答案,并使用了onclick,现在它可以工作了。@WilliamEntriken我使用的是chrome,它不能工作的原因是它托管在一个不安全的网站上,因此跨源请求失败。当堆栈溢出切换到https时,它破坏了这个答案。将音频文件切换到通过https托管的音频文件,现在允许它工作。
function playAudio(data) {
    if(!data || !data.DownloadUrl) {
        return;
    }

    var audio = new Audio(data.DownloadUrl);  
    audio.type = 'audio/wav';

    var playPromise = audio.play();

    if (playPromise !== undefined) {
        playPromise.then(function () {
            console.log('Playing....');
        }).catch(function (error) {
            console.log('Failed to play....' + error);
        });
    }
}