vue.js实现audio播放amr格式音频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js实现audio播放amr格式音频相关的知识,希望对你有一定的参考价值。

参考技术A 纯前端解码、播放、录音、编码 AMR 音频,无须服务器支持,基于 [amr.js]
注意:由于使用了 amr.js 做编码和解码,因此 js 文件(压缩后,未 gzip)接近 500 KB,使用前请考虑。

使用时引用

html部分

初始化对象

HTML Audio 元素可以播放错误的音频格式

【中文标题】HTML Audio 元素可以播放错误的音频格式【英文标题】:HTML Audio element can play wrong audio format 【发布时间】:2015-10-19 01:33:51 【问题描述】:

我想知道当 src 元素的 type 属性设置为错误格式时,它可能的 HTML 音频元素如何播放歌曲?

例如,我将 mp4 音频文件的类型属性设置为 audio/wav,即使我没有指定后备源,它仍然可以播放?此外,如果您省略类型,它似乎仍然可以找出正确的音频格式。

所以我的问题是源元素的 type 属性的目的是什么?

<audio controls="controls">
  Your browser does not support the <code>audio</code> element.
  <source src="http://a898.phobos.apple.com/us/r1000/039/Music6/v4/13/22/67/1322678b-e40d-fb4d-8d9b-3268fe03b000/mzaf_8818596367816221008.plus.aac.p.m4a">
</audio>

这是一个显示效果https://jsfiddle.net/abftb7sm/4/的jsfiddle

【问题讨论】:

你根本没有设置类型 我实际上省略了它,因为它仍然可以播放,但如果我包含错误的类型,它也会播放 【参考方案1】:

经过一些测试,根据the specs 看来,MediaElements 的type 属性似乎仅帮助浏览器确定它是否应该以及如何获取 数据。

type 属性给出媒体资源的类型,帮助用户代理在获取该媒体资源之前确定它是否可以播放。

在 Firefox 上, 将其设置为任何有效值,但不符合实际文件类型将使 UA 以plain 获取数据。然后当被要求播放时,UA 会仔细检查数据类型并能够覆盖您提供的type

但是,将其设置为一些无效值(例如 "Audio/mpeg" 而不是 "audio/mpeg")将使您的 UA 甚至无法获取任何数据。这里没有仔细检查。

Chrome 似乎从不信任我们...

【讨论】:

以上是关于vue.js实现audio播放amr格式音频的主要内容,如果未能解决你的问题,请参考以下文章

Web 播放声音 — AMR(Audio) 篇

PHP 将amr音频文件转换为mp3格式

融云 AMR(Aduio) 播放 AMR 格式 Base64 码音频

vue3 自定义 audio音频播放效果

HTML5 audio 如何实现播放多个MP3音频

vue播放音频