CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

声音格式问题?

楼主scl(星星)2002-03-28 11:09:26 在 VC/MFC / 基础类 提问

 
  WAVEINOPEN的参数是  
  WAVEFORMATEX   waveformat;  
  waveformat.nAvgBytesPerSec=16000;  
  waveformat.nBlockAlign=2;  
  waveformat.nChannels=1;  
  waveformat.nSamplesPerSec=8000;  
  waveformat.wBitsPerSample=8;  
  waveformat.wFormatTag=WAVE_FORMAT_PCM;  
  写入文件的文件头的参数是什么?  
                      我用这样的参数可以写入为什么回放时感到声音很慢,有延迟!  
      waveformat.nAvgBytesPerSec=8000;  
      waveformat.nBlockAlign=1;  
      waveformat.nChannels=1;  
      waveformat.nSamplesPerSec=8000;  
      waveformat.wBitsPerSample=8;  
      waveformat.wFormatTag=WAVE_FORMAT_PCM;  
  请帮忙!  
  谢谢!  
  问题点数:100、回复次数:16Top

1 楼2ndboy(贱男春)回复于 2002-03-28 11:44:50 得分 50

SamplesPerSec是采样率  
   
  Channel是声道数  
   
  BitsPerSample是每个样本的量化位数  
   
  BlockAlign是每个样本的字节数,应该这样计算:  
  BlockAlign   =   Channel   *   BitsPerSample   /   8;  
   
  AvgBytesPerSec是每秒钟的字节数,应该这样计算:  
  AvgBytesPerSec   =   BlockAlign   *   SamplesPerSec;Top

2 楼akiko(弥弥)回复于 2002-03-28 11:50:03 得分 0

对于WAVE_FORMAT_PCM格式的声音文件,有以下关系:  
  nBlockAlign   =   nChannels   *   wBitsPerSample   /   8;  
  nAvgBytesPerSec   =   nSamplesPerSec   *   nBlockAlign;Top

3 楼scl(星星)回复于 2002-03-28 11:57:15 得分 0

我的写的对不对?Top

4 楼scl(星星)回复于 2002-03-28 11:59:15 得分 0

打开WAVEINOPEN的参数为什么不符合呢?Top

5 楼scl(星星)回复于 2002-03-28 12:01:01 得分 0

我回放时的效果很不好,怎么解释呢?Top

6 楼2ndboy(贱男春)回复于 2002-03-28 12:20:59 得分 0

1*8000/8=1000  
  你怎么写的是1?Top

7 楼ericzhangali(另一个空间)回复于 2002-03-28 12:42:13 得分 50

WAV文件头:  
   
  偏移地址           字节数           数据类型           内       容  
      00H                     4                 char                 "RIFF"标志  
      04H                     4                 long   int             文件长度  
      08H                     4                 char                   "WAVE"标志  
      0CH                     4                 char                   "fmt"标志  
      10H                     4                 过渡字节(不定)  
      14H                     2                 int             格式类别(10H为PCM形式的声音数据)  
      16H                     2                 int                 通道数,单声道为1,双声道为2  
      18H                     2           int   采样率(每秒样本数),表示每个通道的播放速度,  
      1CH                     4               long   int     波形音频数据传送速率,其值为通道数×每秒数据位数×每样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。  
      20H                     2                 int         数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。  
      22H                     2               每样本的数据位数,表示每个声道中各个样本的数据位数。如果有多个声道,对每个声道而言,样本大小都一样。  
      24H                     4                 char                 数据标记符"data"  
      28H                     4                 long   int         语音数据的长度    
     
  Top

8 楼ericzhangali(另一个空间)回复于 2002-03-28 12:46:36 得分 0

你的采样率导致回放效果不好  
   
  丢丢说的什么1*8000/8=1000?Top

9 楼scl(星星)回复于 2002-03-28 15:45:12 得分 0

我录了二十秒,结果回放时放了三十秒,这是为什么?Top

10 楼bluestar(蓝色星星)回复于 2002-03-28 17:01:41 得分 0

你回访是填动态缓冲区还是静态的,填的位置不对回造成错误现象。Top

11 楼2ndboy(贱男春)回复于 2002-03-28 17:19:00 得分 0

是参数问题,看一下我上面写的东西Top

12 楼ericzhangali(另一个空间)回复于 2002-03-28 17:22:19 得分 0

采样率不一样Top

13 楼scl(星星)回复于 2002-03-28 17:38:37 得分 0

我的问题好了,谢谢你们俩个人!  
  每人50好吗?Top

14 楼scl(星星)回复于 2002-03-28 17:39:29 得分 0

谢谢你们的帮助!  
  Top

15 楼sly582(张仓)回复于 2002-03-28 17:40:46 得分 0

采样不一样,同上阿Top

16 楼scl(星星)回复于 2002-03-28 17:41:12 得分 0

朋友们,下次见!Top

相关问题

  • 声音格式的问题
  • 如何播放rm格式的声音?
  • 声音文件格式请教
  • *.Vqf是什么格式的声音文件?有何特点.
  • MPEG格式中的图片和声音能被分解吗?
  • JAVA支持的声音和图象的格式太少了,
  • 寻找声音格式转换(WAV->AU)的代码
  • 请问Java支持什么声音文件格式?
  • 如何获得wav格式声音播放时间长度?
  • 如何选择游戏中的声音文件格式?

关键词

  • 样本
  • 数据
  • 位数
  • 文件
  • waveformat
  • 字节数
  • 声道
  • blockalign
  • nblockalign
  • 格式

得分解答快速导航

  • 帖主:scl
  • 2ndboy
  • ericzhangali

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo