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