# flac [![Go构建状态](https://github.com/mewkiz/flac/actions/workflows/go.yml/badge.svg?branch=master)](https://github.com/mewkiz/flac/actions/workflows/go.yml) [![覆盖状态](https://coveralls.io/repos/github/mewkiz/flac/badge.svg?branch=master)](https://coveralls.io/github/mewkiz/flac?branch=master) [![GoDoc](https://pkg.go.dev/badge/github.com/mewkiz/flac)](https://pkg.go.dev/github.com/mewkiz/flac) 这个包提供对[FLAC](http://flac.sourceforge.net/format.html)(自由无损音频编码)的流访问。 ## 文档 文档由GoDoc提供。 - [flac]:提供对FLAC(自由无损音频编码)流的访问。 - [frame][flac/frame]:实现对FLAC音频帧的访问。 - [meta][flac/meta]:实现对FLAC元数据块的访问。 ## 更改记录 * 版本 1.0.12(2024-08-11) - 通过使用缓冲读取器来提高flac.NewSeek()的性能(见[#72](https://github.com/mewkiz/flac/pull/72))。 - 修复流结束检查中的越界错误(见[#73](https://github.com/mewkiz/flac/pull/73))。 * 版本 1.0.11(2024-08-04) - 将示例工具移动到专用的[mewkiz/flac-tools](https://github.com/mewkiz/flac-tools)存储库,以减少外部依赖(见[#62](https://github.com/mewkiz/flac/pull/62))。 - 修复帧起始位置的寻址(见[#71](https://github.com/mewkiz/flac/pull/71))。感谢[Mark Kremer](https://github.com/MarkKremer)。 - 简化flac.Stream和flac.Encoder类型中io.Closer元素的内部处理(见[#70](https://github.com/mewkiz/flac/pull/70))。感谢[Mario Salgado](https://github.com/zalgonoise)。 * 版本 1.0.10(2023-11-11) - 添加对LPC音频样本编码的支持(见[#66](https://github.com/mewkiz/flac/pull/66))。感谢[Mark Kremer](https://github.com/MarkKremer)提供的错误修复和[Mattias Wadman](https://github.com/wader)提供的宝贵工具[fq](https://github.com/wader/fq),用于调查FLAC编码问题。 - 用GitHub Actions替代Travis CI进行CI构建状态、测试状态和代码覆盖率(见[#64](https://github.com/mewkiz/flac/pull/64))。感谢[Mark Kremer](https://github.com/MarkKremer)。 * 版本 1.0.9(2023-10-24) - 修复在展开米饭剩余样本时的整数溢出(见[#61](https://github.com/mewkiz/flac/pull/61))。感谢[Mark Kremer](https://github.com/MarkKremer)。 - 修复转义分区音频样本的解码(见[#60](https://github.com/mewkiz/flac/issues/60))。感谢[Mark Kremer](https://github.com/MarkKremer)。 - 处理样本位数不均匀可被8整除的音频帧哈希(见[9d50c9e](https://github.com/mewkiz/flac/commit/9d50c9ee99ba322f487ed60442dc16f22b2affb8))。 * 版本 1.0.8(2023-04-09) - 修复读取元数据时的竞争条件(见[#56](https://github.com/mewkiz/flac/pull/56))。感谢[Zach Orosz](https://github.com/zachorosz)。 - 修复8-bps WAV音频样本的编码(见[#52](https://github.com/mewkiz/flac/pull/52))。感谢[Martijn van Beurden](https://github.com/ktmf01)。 - 修复StreamInfo块类型错误信息(见[#49](https://github.com/mewkiz/flac/pull/49))。 * 版本 1.0.7(2021-01-28) - 添加寻址API(见[#44](https://github.com/mewkiz/flac/pull/44)和[#46](https://github.com/mewkiz/flac/pull/46))。感谢[Craig Swank](https://github.com/cswank)。 * 版本 1.0.6(2019-12-20) - 添加实验性的Encoder API以编码音频样本和元数据块(见[#32](https://github.com/mewkiz/flac/pull/32))。 - 使用go.mod。 - 在解析时跳过添加到flac文件前的ID3v2数据(见[36cc17e](https://github.com/mewkiz/flac/commit/36cc17efed51a9bae283d6a3a7a10997492945e7))。 - 删除对encodebytes的依赖。感谢[Mikey Dickerson](https://github.com/mdickers47)。 - 添加16kHz测试用例。感谢[Chewxy](https://github.com/chewxy)。 - 修复lint问题(见[#25](https://github.com/mewkiz/flac/issues/25))。 * 版本 1.0.5(2016-05-06) - 简化导入路径。放弃使用gopkg.in,改为依赖于包装(见[azul3d/engine#1](https://github.com/azul3d/engine/issues/1))。 - 添加FLAC解码基准测试(见[d675e0a](https://github.com/mewkiz/flac/blob/d675e0aaccf2e43055f56b9b3feeddfdeed402e2/frame/frame_test.go#L60))。 * 版本 1.0.4(2016-02-11) - 在文档中添加API示例(见[#11](https://github.com/mewkiz/flac/issues/11))。 - 扩展测试用例(见[aadf80a](https://github.com/mewkiz/flac/commit/aadf80aa28c463a94b8d5c49757e5a0948613ce2))。 * 版本 1.0.3(2016-02-02) - 实现FLAC文件的解码,不浪费样本位数(见[#12](https://github.com/mewkiz/flac/issues/12))。 - 使用[go-fuzz](https://github.com/dvyukov/go-fuzz)对库进行压力测试(见[#10](https://github.com/mewkiz/flac/pull/10))。感谢[Patrick Mézard](https://github.com/pmezard)。 * 版本 1.0.2(2015-06-05) - 修复阻塞策略的解码(见[#9](https://github.com/mewkiz/flac/pull/9))。感谢[Sergey Didyk](https://github.com/sdidyk)。 * 版本 1.0.1(2015-02-25) - 修复两个子帧解码的错误(见[#7](https://github.com/mewkiz/flac/pull/7))。感谢[Jonathan MacMillan](https://github.com/perotinus)。 - 添加帧解码测试用例。 * 版本 1.0.0(2014-09-30) - 初次发布。 - 实现FLAC文件的解码。