网站首页 > 易语言相关 > 多媒体类源码 正文
Windows的录音流程大致如下:
1 先查看本地机器是否拥有声音输入设备。
2 获取声音输入设备的信息
一般上面的两部不是很必要,毕竟现在的电脑基本都拥有集成声卡。不过从稳定性和通用性看,还是很必要的。
3 打开设备,获取设备句柄,传入对应的事件句柄。
4 准备一个异步线程专门用于录音完成后的处理工作,并等待事件。
5 通过设备句柄为其准备缓冲区
6 将准备好的缓冲区通过句柄添加到设备中
接下来属于系统的工作,正常情况下,在缓冲区被填满后,将会触发事件,来通知异步线程进行处理。获取声音信息后,要再次添加缓冲区,才能继续录音。
有时在缓冲区的建立上,一般会采取栈分配或者堆分配的方式。栈分配内存的析构处理通过退栈完成,用户不用手动处理。但是堆分配的时候就会遇到麻烦,具体如下:
在准备缓冲区的时候会调用waveInPrepareHeader函数,这个函数调用后,为其分配的内存就无法通过delete或者free来释放了,因为在该函数调用后这块内存区域被锁定了。此时必须调用waveInUnprepareHeader函数才能解锁定,然后才能释放。
但是在调用waveInPrepareHeader函数后,再接着调用了waveInAddBuffer函数,在该缓冲区未被填满的时候,尝试使用waveInUnprepareHeader函数解锁定,就会返回失败码33。这里的解决方案就是在决定释放空间前,首先调用一个函数:waveInReset。这个函数调用后,就可以将内存从waveInAddBuffer函数的限定中释放,然后再常规使用waveInUnprepareHeader释放,最后调用delete或者free释放内存空间。
@猫乐
- 上一篇: 易语言静态编译链接器切换工具
- 下一篇: WPE封包DLL源码
猜你喜欢
- 2022-07-02 音悦台MV播放器源码
- 2022-05-12 易语言调用aliplayer写的一个电视直播软件
- 2022-04-21 ffmpeg视频处理工具源码
- 2021-12-30 易语言编写网络MP3播放器源码(用易语言实现的MP3播放器源码)
- 2021-10-19 易语言代码实现TS视频文件转换为MP4文件
- 2021-06-06 Video播放器-基于迅雷aplyaer引擎开发的播放器
- 2020-11-03 ffmpeg高清录屏源码
- 2020-08-26 音乐歌单专辑批量解析播放源码
- 2020-06-08 背景音乐采集播放器源码
- 2020-05-31 易语言基于MB浏览框浏览网页制作的音乐工具
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
已有5位网友发表了看法:
易语言 评论于 [2020-03-02 18:59:48] 回复
易语言录音
API完成 评论于 [2020-03-07 00:51:05] 回复
易语言 录音音波
sql语句 评论于 [2020-04-17 20:42:09] 回复
易语言录音实时播放
火山PC内测版 评论于 [2020-09-10 20:09:18] 回复
易语言+声卡+录制
fiddler 评论于 [2022-03-26 18:22:55] 回复
易语言API录音源码