- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
MP3(Moving Picture Experts Group Audio Layer III,MPEG Audio Layer 3)是一种音频编码方式, MPEG 音频文件是 MPEG 标准中的声音部分, 根据压缩质量和编码复杂程度划分为三级 Layer-1, Layer-2, Layer-3, 分别对应MP1, MP2, MP3 这三种编码格式, 级别越高压缩率越高,编码器也越复杂, MP3 压缩率可达到 10:1 至 12:1. 。
Helix 解码库提供了MP3内容的MPEG兼容解码, 支持可变比特率, 恒定比特率以及立体声和单声道音频格式. Helix 的定点解码库专门针对ARM处理器进行了优化. Helix 解码库是以帧为解码单位的, 一次解码一帧, 运行需要占用的资源很少, 可以在任何能够执行长整数乘法运算(两个32位输入生成一个64位结果)和长整数乘法-累加(具有64位累加器的长整数乘法)的32位处理器上运行. 。
在 air32f103-template 项目中, 已经将 Helix 加入 Library 并在 Makefile 中增加了编译选项, 设为 y 就会增加Helix库的支持. 。
# Build with Helix MP3 lib, y:yes, n:no
USE_HELIX ?= y
在项目中使用Helix库, 只需要引用 mp3dec.h 和 mp3_data.h 这两个头文件, 初始化 HMP3Decoder 。
hMP3Decoder = MP3InitDecoder();
示例代码: air32f103-template/tree/master/Examples/NonFreeRTOS/I2S/Helix_MP3_Play 。
示例中的I2S设置是针对PT8211的, 如果使用的是, 需要修改一下, 改成 Phillips 格式 。
// PT8211:LSB, MAX98357A:Phillips
I2S_InitStructure.I2S_Standard = I2S_Standard_LSB;
接线 。
* AIR32F103 MAX98357A / PT8211
* PB12(SPI1_NSS/I2S_WS) -> LRC, WS
* PB13(SPI1_SCK/I2S_CK) -> BCLK, BCK
* PB15(SPI1_MOSI/I2S_SD) -> DIN
* GND -> GND
* VIN -> 3.3V
* + -> speaker
* - -> speaker
编译和烧录的步骤, 参考前面的 AIR32F103(三) Linux环境基于标准外设库的项目模板 。
运行后会重复播放一段音乐. 。
首先要用工具将MP3剪辑到合适的大小(不要超过200KB), 格式为立体声 44.1 KHz 采样率, 不限制比特率. 。
然后用工具将其转换为十六进制表示的字节数组. 替换掉 mp3_data.c 中的内容, 同时修改 mp3_data.h 中的 MP3_DATA_SIZE. 。
bin2hex的转换工具, 可以使用 Perl Script to convert binary to hex 这个perl脚本 。
最后此篇关于AIR32F103(八)集成HelixMP3解码库播放MP3的文章就讲到这里了,如果你想了解更多关于AIR32F103(八)集成HelixMP3解码库播放MP3的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有以下 json: {"results": [{"columns":["room_id","player_name","player_ip"], "types":["integer","text
我在 go 中获取格式不一致的 JSON 文件。例如,我可以有以下内容: {"email": "\"blah.blah@blah.com\""} {"email": "robert@gmail.com
JavaScript中有JSON编码/解码base64编码/解码函数吗? 最佳答案 是的,btoa() 和 atob() 在某些浏览器中可以工作: var enc = btoa("this is so
我在其中一个项目中使用了 Encog,但在解码 One-Of Class 时卡住了。该字段的规范化操作之一是 NormalizationAction.OneOf,它具有三个输出。当我评估时,我想解码预
在我的 previous question关于使用 serialize() 创建对象的 CSV 我从 jmoy 那里得到了一个很好的答案,他推荐了我的序列化文本的 base64 编码。这正是我要找的。
有些事情让我感到困惑 - 为什么 this image在每个浏览器中显示不同? IE9(和 Windows 照片查看器)中的图像: Firefox(和 Photoshop)中的图像: Chrome(和
是否可以在不知道它的类型( JAXBContext.newInstance(clazz) )的情况下解码一个类,或者什么是测试即将到来的正确方法? 我确实收到了从纯文本中解码的消息 - 字符串 传入的
我正在尝试使用 openSSL 库进行 Base64 解码,然后使用 CMS 来验证签名。 下面的代码总是将缓冲区打印为 NULL。 char signed_data[] = "MIIO"; int
我有一个带有 SEL 类型实例变量的类,它是对选择器的引用。在encodeWithCoder/initWithCoder中,如何编码/解码这种类型的变量? 最佳答案 您可以使用 NSStringFro
var url = 'http://www.googleapis.com/customsearch/v1?q=foo&searchType=image'; window.fetch(url) .t
我想知道Android 2.2、2.3和3,4支持的音频/视频格式列表。我也想知道哪些Android版本支持视频编码和解码。我经历了this link,但是关于编码和解码我并不清楚。 任何人的回答都是
我在其中一个项目中使用 Encog,但在解码 One-Of 类时遇到了困难。该字段的规范化操作之一是 NormalizationAction.OneOf,它具有三个输出。当我评估时,我想解码预测值。如
我正在尝试解码现有的 xml 文件,以便我可以正确处理数据,但 XML 结构看起来很奇怪。下面是 xml 示例以及我创建的对象。 11 266 AA1001 1
对 unicode 字符进行 URL 编码的常用方法是将其拆分为 2 %HH 代码。 (\u4161 => %41%61) 但是,unicode在解码时是如何区分的呢?您如何知道 %41%61 是 \
我正在尝试将 json 字符串解码为 Map。 我知道有很多这样的问题,但我需要非常具体的格式。例如,我有 json 字符串: { "map": { "a": "b",
我有一个查询,我认为需要像这样(解码会更大) SELECT firstName, lastName, decode(mathMrk, 80, 'A', mathMrk) as decodeMat
我知道PHP函数encode()和decode(),它们对我来说工作得很好,但我想在url中传递编码字符串,但encode确实返回特殊字符,如“=”、“”' “等等...... 这显然会破坏我的脚本,
我必须解码 Basic bW9uTG9naW46bW9uTW90RGVQYXNz 形式的 http 请求的授权 header 当我解码它时online ,我得到了正确的结果 monLogin:monM
这个问题已经有答案了: Decode Base64 data in Java (21 个回答) 已关闭 8 年前。 我想知道使用哪个库进行 Base64 编码/解码?我需要此功能足够稳定以供生产使用。
我正在尝试从 Arduino BT 解码 []byte,我的连接完美,问题是当我尝试解码数组时。我得到的只是这个字符�(发送的字节数相同)我认为问题出在解码上。我尝试使用 ASCII 字符集,但仍然存
我是一名优秀的程序员,十分优秀!