如何根据剩余内存空间计算可录音时长

StormAprt 2012-12-06 11:18:59
我在wince操作系统中做录音机程序的开发,现在的需求是需要根据剩余内存计算出还能录多长时间,其中还可以设置采样率分别为128kbps、64kbps、32kbps,通过选择不同的采样率可以重新计算剩余可录时长。我用的是WAVEFORMATEX结构体,
WAVEFORMATEX waveform;
通过设定
waveform.nSamplesPerSec=64000;
waveform.nAvgBytesPerSec=64000;
来计算每秒录音文件大小,再将剩余内存空间除以这个值换算成时分秒的时间,但是这样算出来的值误差极大,例如录音时间很短时候,剩余可录时长一直不变。
请求各位大侠帮忙,有没有一种精确计算时间的方法,需要精确到秒。
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
StormAprt 2012-12-10
  • 打赏
  • 举报
回复
引用 3 楼 pengyw 的回复:
128kbps、64kbps、32kbps kbps就是每秒多少kbits 剩余空间(换算成kB)/(kpbs*8)就是
我用的GetDiskFreeSpaceEx获取系统空间,单位应该是KB吧,我用的是8*剩余空间(换算成KB)/kbps,您的算法有什么依据吗?我第一次做音频,还不太了解,望指教~
pengyw 2012-12-07
  • 打赏
  • 举报
回复
128kbps、64kbps、32kbps kbps就是每秒多少kbits 剩余空间(换算成kB)/(kpbs*8)就是
StormAprt 2012-12-07
  • 打赏
  • 举报
回复
引用 1 楼 unsway123 的回复:
Flash你至少要多留个10M以上出来给系统用,很多临时文件有的是保存在flash上的,很短的时候,剩余刻录长度的计算不变,估计是你应用软件的问题
那应该怎么计算这个剩余时长呢?
unsway123 2012-12-06
  • 打赏
  • 举报
回复
Flash你至少要多留个10M以上出来给系统用,很多临时文件有的是保存在flash上的,很短的时候,剩余刻录长度的计算不变,估计是你应用软件的问题

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧