谷歌浏览器 audio如何隐藏下载按钮

当我们使用原生的audio标签时,可以看到如下的效果。

那么如何让下载按钮隐藏掉呢?

1. controlsList=”nodownload”

1
2
3
4
// 这个方法只支持 Chrome 58+, 低于该版本的是没有无法隐藏的
<audio src="/i/horse.ogg" controls="controls" controlsList="nodownload">
Your browser does not support the audio element.
</audio>

controlsList属性只兼容Chrome 58+以上,具体可以参考controlslist.htmlcontrolsList在线例子

  • nodownload: 不要下载
  • nofullscreen: 不要全屏
  • noremoteplayback: 不要远程回放

2. css方式来隐藏

1
2
3
4
5
6
7
8
// 这个方式兼容所有版本的谷歌浏览器
audio::-webkit-media-controls {
overflow: hidden !important
}
audio::-webkit-media-controls-enclosure {
width: calc(100% + 32px);
margin-left: auto;
}

3. 即使让下载按钮隐藏了,如何禁止右键下载?

1
2
3
4
// 给audio标签禁止右键,来禁止下载
<audio src="/i/horse.ogg" controls="controls" controlsList="nodownload" oncontextmenu="return false">
Your browser does not support the audio element.
</audio>

4. 第三方插件: audiojs

项目地址: https://github.com/kolber/audiojs
优点: 简单,无依赖
缺点:异步插入的audio标签,每次还是需要重新调用audiojs.createAll()方法来重新实例化

1
2
3
4
5
6
7
8
9
// 1.
<script src="/audiojs/audio.js"></script>

// 2.
<script>
audiojs.events.ready(function() {
var as = audiojs.createAll();
});
</script>

效果图:

5. audio相关问题以及解决方案

6. 参考文献