Javascript 修改html5音频标签中的下载文件名
我正在使用一个音频标记,其源可以是几种类型之一,但可以从ashx文件调用,因为我正在动态加载流Javascript 修改html5音频标签中的下载文件名,javascript,c#,jquery,html,error-handling,Javascript,C#,Jquery,Html,Error Handling,我正在使用一个音频标记,其源可以是几种类型之一,但可以从ashx文件调用,因为我正在动态加载流 <audio id="audio" controls="" autoplay="" download="soundFile.wav"> <source id="mp3" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&fileId=test&fileType=mp3" t
<audio id="audio" controls="" autoplay="" download="soundFile.wav">
<source id="mp3" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&fileId=test&fileType=mp3" type="audio/mpeg3">
<source id="wav" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&fileId=test&fileType=wav" type="audio/wav">
</audio>
或者像这样(这显然只在IE中有效[我从
我的问题是如何判断实际错误是什么。例如,在我的ashx文件中,我可能会返回一个404错误,如果我得到这个错误,我想给出一个特定的消息
另外,我的另一个问题是,当在不支持mp3的Chrome或Firefox中运行时,将调用我的错误处理程序,但我希望忽略该错误,因为我还有一个受支持的wav文件
谢谢!这方面有什么消息吗?
$('audio').on('error', function (e) {
$('#divAudioPlayerMessage').text('Recording can’t be played');
});
$('source').on('error', function (e) {
$('#divAudioPlayerMessage').text('Recording can’t be played');
});
document.getElementsByTagName('audio')[0].addEventListener('error', function(e, o) {
// audio playback failed - show a message saying why
// to get the source of the audio element use $(this).src
var errorMessage = '';
switch (e.target.error.code) {
case e.target.error.MEDIA_ERR_ABORTED:
errorMessage = 'You aborted the video playback.';
break;
case e.target.error.MEDIA_ERR_NETWORK:
errorMessage = 'A network error caused the audio download to fail.';
break;
case e.target.error.MEDIA_ERR_DECODE:
errorMessage = 'The audio playback was aborted due to a corruption problem or because the video used features your browser did not support.';
break;
case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
errorMessage = 'The video audio not be loaded, either because the server or network failed or because the format is not supported.';
break;
default:
errorMessage = 'An unknown error occurred.';
break;
}
$('#divAudioPlayerMessage').text(errorMessage);
}, true);