如何使用 javascript 检测可播放的音频类型?

How to detect audio types playable by using javascript?

我正在做一个使用浏览器指纹识别的项目,这是我以前见过的一种技术,可以找到浏览器或用户可以播放的所有音频类型,我该如何使用 javascript ?

我知道你可以使用HTMLMediaElement.canPlaytype(),但这只适用于特定情况,我想知道每一种可玩的类型。在 AmiUnique 或 Browserleaks 上测试我的指纹时,您可以看到一些音频类型,例如:

audio/mp4; codecs="mp4a.40.2" 

我在 google 上找不到任何列出所有音频类型的内容,否则我会为每个选项使用 canPlayType。有人知道其他方法吗?

您在 canPlayType there is link to MediaCapabilities 的页面上看起来不正确。这将为您提供您可以获得的大部分信息。没有列表或任何东西,但它提供的远不止 canPlayType.

不,没有方法可以枚举系统支持的内容。这并不是所有可能的,也不是有用的,因为容器和编解码器的排列数量巨大。此外,甚至不可能提前明确确定某些内容是否会成功播放,因为媒体通常存在比特流问题或硬件存在兼容性问题。 (尝试在某些iPhone上播放HE-AACv2...对软件来说,它可以,但对听者来说听起来很破!)

您最好列出要测试的项目。没有所有可能排列的明确列表,因此您将不得不选择一些。

Chromium 的单元测试可能是一个不错的起点: