修改html5音频标签中的下载文件名

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&amp;fileId=test&amp;fileType=mp3" type="audio/mpeg3">\n  <source id="wav" src="../Controls/SoundPlayer/GetSoundFile.ashx?soundType=Sound&amp;fileId=test&amp;fileType=wav" type="audio/wav">\n</audio>\n
Run 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});\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者像这样(这显然只适用于 IE [我从如何检查 HTML5 音频是否达到不同的错误中得到了这个中得到了这个)

\n\n
document.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);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是如何判断实际错误是什么。例如,在我的 ashx 文件中,我可能会返回 404 错误,如果收到该错误,我会给出特定的消息。

\n\n

另外,我的另一个问题是,当在不支持 mp3 的 Chrome 或 Firefox 中运行时,我的错误处理程序将被调用,但我想忽略该错误,因为我还有一个受支持的 wav 文件。

\n\n

谢谢你!

\n

Viv*_*k S 0

如果您想更改音频标签的可下载文件名意味着

<audio controls="" title='example' />
Run Code Online (Sandbox Code Playgroud)

默认情况下,音频标签将以 .wav 格式下载。