Bau*_*uer 5 html javascript c# error-handling jquery
我正在使用一个音频标签,其源可以是多种类型之一,但从 ashx 文件调用,因为我正在动态加载流。
\n\n<audio id="audio" controls="" autoplay="" download="soundFile.wav">\n <source id="mp3" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&fileId=test&fileType=mp3" type="audio/mpeg3">\n <source id="wav" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&fileId=test&fileType=wav" type="audio/wav">\n</audio>\nRun Code Online (Sandbox Code Playgroud)\n\n这部分工作正常,但我想做的是在失败时捕获错误。我可以这样做:
\n\n$(\'audio\').on(\'error\', function (e) {\n $(\'#divAudioPlayerMessage\').text(\'Recording can\xe2\x80\x99t be played\');\n});\n$(\'source\').on(\'error\', function (e) {\n $(\'#divAudioPlayerMessage\').text(\'Recording can\xe2\x80\x99t be played\');\n});\nRun Code Online (Sandbox Code Playgroud)\n\n或者像这样(这显然只适用于 IE [我从如何检查 HTML5 音频是否达到不同的错误中得到了这个中得到了这个)
\n\ndocument.getElementsByTagName(\'audio\')[0].addEventListener(\'error\', function(e, o) {\n // audio playback failed - show a message saying why\n // to get the source of the audio element use $(this).src\n var errorMessage = \'\';\n switch (e.target.error.code) {\n case e.target.error.MEDIA_ERR_ABORTED:\n errorMessage = \'You aborted the video playback.\';\n break;\n case e.target.error.MEDIA_ERR_NETWORK:\n errorMessage = \'A network error caused the audio download to fail.\';\n break;\n case e.target.error.MEDIA_ERR_DECODE:\n errorMessage = \'The audio playback was aborted due to a corruption problem or because the video used features your browser did not support.\';\n break;\n case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:\n errorMessage = \'The video audio not be loaded, either because the server or network failed or because the format is not supported.\';\n break;\n default:\n errorMessage = \'An unknown error occurred.\';\n break;\n }\n $(\'#divAudioPlayerMessage\').text(errorMessage);\n}, true);\nRun Code Online (Sandbox Code Playgroud)\n\n我的问题是如何判断实际错误是什么。例如,在我的 ashx 文件中,我可能会返回 404 错误,如果收到该错误,我会给出特定的消息。
\n\n另外,我的另一个问题是,当在不支持 mp3 的 Chrome 或 Firefox 中运行时,我的错误处理程序将被调用,但我想忽略该错误,因为我还有一个受支持的 wav 文件。
\n\n谢谢你!
\n如果您想更改音频标签的可下载文件名意味着
<audio controls="" title='example' />
Run Code Online (Sandbox Code Playgroud)
默认情况下,音频标签将以 .wav 格式下载。