我正在开发第一个GM脚本,用HTML 5音频标签替换http://www.freesound.org上的Flash预览,并为搜索结果添加下载链接。我的后者工作正常,但是我无法在Firefox 3.5.9中显示音频标签。这是我的脚本:

// ==UserScript==
// @name           FreeSound HTML 5 Preview
// @namespace      http://thewordnerd.info
// @description    Replace Flash-based sound previews on freesound.org with audio tags and add quick download links
// @include http://freesound.org/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js
// ==/UserScript==

$(document).ready(function() {
  $("embed").remove();
  $(".samplelist").each(function(index) {
    sampleNo = $(this).find("a:first").attr("href").split("?")[1].split("=")[1];
    userName = $(this).find("a:eq(1)").html();
    title = $(this).find("a:first").html().replace(/ /g, "_");
    url = "/download/"+sampleNo+"/"+sampleNo+"_"+userName+"_"+title;
    $(this).find("script").replaceWith("<audio src='"+url+"' controls='controls' type='audio/wave'/>");
    //$(this).find("audio").removeAttr("tabindex");
    $(this).append("<a href='"+url+"'>Download</a>");
  });
});

我可以在Firebug中看到该元素,而且看起来还不错。

关于我在这里可能做错了什么的想法?由于下载链接确实下载了所请求的文件,因此很麻烦,而且由于我认为我已经设置了正确的类型,所以我不知道为什么不显示该文件。

最佳答案

它可能不是freesound.org站点/服务器,而是您的脚本。

当我运行脚本的修改版本时,所有音频控件都会显示一秒钟,然后恢复为错误显示,如下所示:

Firefox报告我检查的文件的MEDIA_ERR_SRC_NOT_SUPPORTED

将此代码保存到您的计算机,然后使用Firefox运行它:

<html>
<head>
    <title>Audio File test</title>
</head>
<body>
<audio id="aud1" controls="true" type="audio/ogg"
src="http://www.freesound.org/download/7521/7521_abinadimeza_Rainfall.ogg">xxx</audio>

<audio id="aud2" controls="true" type="audio/ogg"
src="http://developer.mozilla.org/@api/deki/files/2926/=AudioTest_(1).ogg">xxx</audio>
</body>
<script type="text/javascript">
    window.addEventListener ("load", ErrorReport, false);

    function ErrorReport (evt)
    {
        console.log (document.getElementById ("aud1").error);
        console.log (document.getElementById ("aud2").error);
    }
</script>
</html>


您会看到来自Mozilla的已知正常文件可以正常工作,但是来自freesound.org的已知文件不能正常工作。这可能是Firefox中的错误/局限性-两个文件都可以在本地播放器上正常播放。

这是一个link to the Firefox bug system, to search for or report bugs

关于firefox - HTML 5音频标签未出现在GreaseMonkey中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3594985/

10-17 01:53