游戏开发中经常会听到 Ogg 和 Vorbis 两个单词,最近在阅读《Beginning Game Audio Programming》一书时,得知两者之间的联系,这里做一下笔记。

Ogg Vorbis API 包含四个重要代码库:

1. Ogg Library

2. Vorbis Library

3. Vorbisenc Library

4. Vorbisfile Library

Ogg Library 包含了一些通用函数,这些函数用于操作 Ogg 文件,Ogg 是一种通用框架,它的意图是用来作为一个容器,可以包含音频数据和视频数据,这些音频数据和视频数据可以是压缩过的,也可以是没有压缩过的,这个和微软发明的 RIFF 文件是相似的,RIFF 是微软的一种文件容器,它也是被设计出来包含多媒体数据的,其中 WAVE 和 AVI 就是使用 RIFF 作为容器进行封装的。

Ogg Library 不需要知道自己包含了什么数据,你甚至可以在 Ogg 文件中封入 dll 文件(Ogg:不许笑,我是认真的),也就是说,你用 Ogg Library 只能够解压出 dll 文件,但是 dll 文件的操作,你还是要自己另外去找代码来加载的。 那么,我们经常看到的 ogg 音频文件,里面包含了什么样的数据呢,就目前为止,大多数都包含了使用 Vorbis Library 进行压缩的音频数据。 也就是说,通过 Ogg Library 把数据解压出来后,还需要通过 Vorbis Library,才能读取里面的音频数据,把音频数据转换成标准 PCM 数据。

Vorbisenc Library 很少被使用,我没有多看。

最后是 Vorbisfile Library,这个库是我们用得最多的库,这个库封装了 Ogg Library 和 Vorbis Library,提供了一组容易使用的 API,让我们可以一站式操作 ogg 文件。

---------------------------------------------------------

不知道理解的对不对,同时非常感谢各位前辈在评论区指出错误之处,我会虚心采纳,并在文章中加以纠正。

转载于:https://www.cnblogs.com/NekoMasutaDev/p/9071867.html

OggVorbis 小记相关推荐

  1. hp-ux 集群,内存 小记

    hp-ux 集群,内存 小记 -----查看hp 集群状态信息 # cmviewcl -v CLUSTER        STATUS       dbsvr          up          ...

  2. <笔记2>numpy的生成随机数用法小记

    numpy的生成随机数用法小记 numpy生成随机数 <以下图片来自黑马程序猿录播课程笔记> import numpy as np import random #random 生产随机数 ...

  3. 2021年中寻找新SAP项目机会小记

    2021年中寻找新SAP项目机会小记 最近一段时间,笔者有在酝酿下一个SAP项目机会.在与相关业界同仁洽谈项目机会的过程中,笔者发现自己还是在犯一些低级错误,感觉自己还是太不够理性和成熟. 1,事情没 ...

  4. K项目小记 - 项目已开工整整四周!

    K项目小记 - 项目已开工整整四周! 至今天,K项目已经推进到了第四周.这四周时间里,我们项目组全体成员经历了一段刻骨铭心的战斗时光.我们每天开会,谈流程,展示全球模板,找GAP.K项目是以客户总部的 ...

  5. 肺炎疫情期间购买口罩小记

    肺炎疫情期间购买口罩小记 谁都不曾想到,平时不怎么用到的口罩,在此次肺炎疫情期间,突然成为紧俏物资,重要物资. 早在疫情爆发初期,就在新闻报道里听说医护人员缺少医护物资,其中就有各种级别的口罩.此时笔 ...

  6. SAP MM 进销存报表优化小记

    SAP MM 进销存报表优化小记 笔者刚刚加入SY项目,就接到了SY集团上海总部SAP运维部门负责人的工作分配,说是有一只进销存报表,需要做一个优化,可能是需要重新设计重新开发. 笔者研究了他们现行进 ...

  7. Flex+J2EE 之小记

    Flex+J2EE 之小记 Jack. Wang 2008-9-10(本待完善...)  wbjeasygo@163.com  由于本人也是初学者(刚看了两天视频),所以请高手指点,这里赞下 blog ...

  8. thrift使用小记_CUDev-ChinaUnix博客

    thrift使用小记_CUDev-ChinaUnix博客 thrift使用小记 (2011-09-19 21:28) 标签:  客户端  接口  Facebook  transport  protoc ...

  9. 微信公众号开发小记(二)--服务器验证

    这篇是微信公众号开发小记的第二篇,承接上一篇,此次将完成如下主要功能 对接微信服务器和自己的服务器 需要的"材料" 到这里需要梳理一下都需要什么东西,以便在整个编码的过程中方便我们 ...

最新文章

  1. 技术贴 | MetaboAnalyst 4.0,代谢组学研究利器的升级
  2. AOF-Redis设计与实现
  3. 资产管理大佬讲述:如何用大数据及人工智能挑选基金?
  4. Jupyter Notebook快捷键
  5. Android仿QQ界面
  6. python中文昵称-官方出品 Python 中文文档!拜托,别再说看不懂了
  7. SQL Server 练习
  8. linux签名服务器,linux – 如何在远程服务器上使用gpg签名密钥?
  9. 这位优秀的.NET开发者是怎样炼成的?
  10. 容器编排技术 -- Init 容器
  11. 不是程序员看不懂的21个梗,当你改错一行代码的时候...
  12. 人生之清单(list of life)
  13. .NET 6 Preview 5
  14. 无法在web 服务器上启动调试。打开的url的iis辅助进程当前没有运行
  15. Crontab 实例
  16. ie打开本地html页面慢,ie11 第一次浏览jquery+CSS3网页时候延时3秒
  17. winrar 百度网盘_不冲百度网盘会员,如何在手机上打开网盘里的压缩包?
  18. BERT模型—7.BERT模型在句子分类任务上的微调(对抗训练)
  19. 用计算机画画的优质课,小学信息技术优质课和画图工具教案.doc
  20. moss部署学习入门及注意事项

热门文章

  1. 用matlab验证傅里叶变换的基本性质
  2. [Canvas系列]Canvas绘制圆弧形状_04
  3. IEEE期刊latex文档最后一页参考文献双栏对齐
  4. 配置Centos7网卡聚合链路
  5. 第十二届CDA认证考试报告重磅发布!
  6. 使用jmeter进行http压力测试(适合小白观看)
  7. DEBUG:plt保存失败
  8. HTML矢量图标的应用
  9. element ui 饿了么UI中el-dialog样式修改问题
  10. 驱动人生8可提供Win11专用的intel网卡驱动