文档章节

Windows 音频知识学习汇总

刘军兴
 刘军兴
发布于 2015/12/16 15:22
字数 272
阅读 19
收藏 0

1. 使用低级音频函数 WaveX :

  http://blog.csdn.net/kvw3000/article/details/68468

控制着不同的音频设备, 包括 wave, midi 和辅助音频设备. 低级服务包括:

   (1) 查询音频设备.
   (2) 打开和关闭设备驱动程序.
   (3) 分配和准备音频数据块.   ?waveSetBuffer()
   (4) 管理音频数据块.
   (5) 应用 MMTIME 结构.
   (6) 处理错误.

使用了 Windows 的消息映射, 在音频事件会发送有关消息.

   (1) MM_WOM_CLOSE 输出设备关闭
   (2) MM_WOM_DONE 输出缓存播放完毕.
   (3) MM_WOM_OPEN 设备被打开
   (4) MOM_CLOSE MIDI 设备关闭.
   (5) WOM_DONE
   (6) WOM_OPEN

相关数据结构:

   1) 波形数据格式 WAVEFORMAT/EX
   2) 波形数据缓冲区格式 WAVEHDR
   3) 音频输出设备性能 WAVEOUTCAPS

定义在 mmsystem.h 中.

 

读取 wave 文件的大致流程:

1. mmioOpen() 打开文件.
2. mmioDescend('WAVE') 进入 ... 块
3. mmioRead() 读取信息
4. mmioAscend() 跳出 ... 块
... 进入 data 块, 读取, 跳出 ...data
最后. mmioClose() 关闭

输出 wav 文件:

waveOutOpen() 打开.
waveOutPrepareHeader() 准备数据头
waveOutWrite() 写入数据并播放
waveOutReset() ... 等略.

 

 

© 著作权归作者所有

共有 人打赏支持
刘军兴
粉丝 54
博文 184
码字总数 226359
作品 0
昌平
我的开源视音频项目汇总

本文汇总一下自己视音频编解码学习方面的开源项目。这些开源项目大体上可以分成专业领域程序,FFmpeg示例程序,FFmpeg移植程序,多媒体项目示例程序,视音频编解码原理学习工程几个类别。这些...

leixiaohua1020
2015/01/13
0
0
从开发小白到音视频专家

作者:卢俊,七牛云客户端团队技术负责人。拥有丰富的音视频领域的开发和实战经验,先后开发过 Android 播放 SDK、Android 推流 SDK、短视频 SDK,并主导了七牛连麦系统的设计和实现。服务过...

dev_csdn
2017/12/07
0
0
《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频

这两天开始带广播电视工程大二的暑假小学期的课程设计了。本次小学期课程内容为《基于 FFmpeg + SDL 的视频播放器的制作》,其中主要讲述了视音频开发的入门知识。由于感觉本课程的内容不但适...

leixiaohua1020
2015/07/26
0
0
微软Windows Azure平台资源汇总

公告:本博客为微软云计算中文博客的镜像博客。部分文章因为博客兼容性问题,会影响阅读体验。如遇此情况,请访问原博客。 云计算简介 了解云计算的一般概念。 Windows Azure平台简介 开始认...

晨曦之光
2012/03/09
0
0
如何保住运维这个铁饭碗?Linux系统运维之修炼秘法

来源:马哥教育 链接:https://mp.weixin.qq.com/s/727F4B_uL2aAPqJUsdRtfw 在这个现如今的互联网高速发展的时代,如何才能保持住一门铁的饭碗。无疑最稳妥的自然就是选择一门任何时代都不会...

Py爱好
07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
5
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部