http://www.xinheng.net/7.dat这个文件如何知道用什么打开?用什么软件可以分析一下?如果想编一个这的解码器,如何下手?

解决方案 »

  1.   

    网络修好了
    如果我猜你这个文件是riff文件
    详情
    http://www.yesky.com/20030414/1663116.shtml
      

  2.   

    哈哈
    好多分呀,做梦都想笑,干脆都贴出来,不给别人机会
    Visual C++相关的编程资料中,无论是大部头的参考书,还是一些计算机杂志,对声音文件的处理都是泛泛的涉及一下,许多编程爱好者都感到对该部分的内容了解不是很透彻,本文希望能够给刚刚涉及到声音处理领域的朋友们起到一个引路的作用,帮助他们尽快进入声音处理的更深奥空间。  当前计算机系统处理声音文件有两种办法:一是使用现成的软件,如微软的录音机、SoundForge、CoolEdit等软件可以实现对声音信号进行录音、编辑、播放的处理,但它们的功能是有限的,为了更灵活,更大限度地处理声音数据,就不得不使用另外一种方法,既利用微软提供的多媒体服务,在Windows环境下自己编写程序来进行声音处理来实现一些特定的功能。下面就开始介绍声音文件的格式和在Windows环境下使用Visual C++开发工具进行声音文件编程处理的方法,本文所有的程序代码都在Windows2000、Visual C++6.0环境下编译通过,运行正常。  二、RIFF文件结构和WAVE文件格式  Windows支持两种RIFF(Resource Interchange File Format,"资源交互文件格式")格式的音频文件:MIDI的RMID文件和波形音频文件格式WAVE文件,其中在计算机领域最常用的数字化声音文件格式是后者,它是微软专门为Windows系统定义的波形文件格式(Waveform Audio),由于其扩展名为"*.wav",因而该类文件也被称为WAVE文件。为了突出重点,有的放矢,本文涉及到的声音文件所指的就是WAVE文件。常见的WAVE语音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。这里的采样率是指声音信号在进行"模→数"转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。在进行声音编程处理以前,首先让我们来了解一下RIFF文件和WAVE文件格式。  RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,每个块有"标志符"、"数据大小"及"数据"所组成,块的结构如图1所示:块的标志符(4BYTES) 
    数据大小 (4BYTES) 
    数据 
     图一、 块的结构示意图  从上图可以看出,其中"标志符"为4个字符所组成的代码,如"RIFF","LIST"等,指定块的标志ID;数据大小用来指定块的数据域大小,它的尺寸也为4个字符;数据用来描述具体的声音信号,它可以由若干个子块构成,一般情况下块与块是平行的,不能相互嵌套,但是有两种类型的块可以嵌套子块,他们是"RIFF"或"LIST"标志的块,其中RIFF块的级别最高,它可以包括LIST块。另外,RIFF块和LIST块与其他块不同,RIFF块的数据总是以一个指定文件中数据存储格式的四个字符码(称为格式类型)开始,如WAVE文件有一个"WAVE"的格式类型。LIST块的数据总是以一个指定列表内容的4个字符码(称为列表类型)开始,例如扩展名为".AVI"的视频文件就有一个"strl"的列表类型。RIFF和LIST的块结构如下:RIFF/LIST标志符 
    数据1大小 
    数据1  格式/列表类型 
    数据 
    图二、RIFF/LIST块结构  WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,其子块的大小就是sizeofof(PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT结构中的数据。WAVE文件的结构如下图三所示:标志符(RIFF) 
    数据大小 
    格式类型("WAVE") 
    "fmt" 
    Sizeof(PCMWAVEFORMAT) 
    PCMWAVEFORMAT 
    "data" 
    声音数据大小 
    声音数据 
     图三、WAVE文件结构  PCMWAVEFORMAT结构定义如下:Typedef struct
    {
    WAVEFORMAT wf;//波形格式;
    WORD wBitsPerSample;//WAVE文件的采样大小;
    }PCMWAVEFORMAT;
    WAVEFORMAT结构定义如下:
    typedef struct
    {
    WORD wFormatag;//编码格式,包括WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM等
    WORD nChannls;//声道数,单声道为1,双声道为2;
    DWORD nSamplesPerSec;//采样频率;
    DWORD nAvgBytesperSec;//每秒的数据量;
    WORD nBlockAlign;//块对齐;
    }WAVEFORMAT;   "data"子块包含WAVE文件的数字化波形声音数据,其存放格式依赖于"fmt"子块中wFormatTag成员指定的格式种类,在多声道WAVE文件中,样本是交替出现的。如16bit的单声道WAVE文件和双声道WAVE文件的数据采样格式分别如图四所示:  16位单声道:采样一 采样二  …… 
    低字节 高字节 低字节 高字节  ……   16位双声道:采样一 …… 
    左声道 右声道 …… 
    低字节 高字节 低字节 高字节  ……                  图四、WAVE文件数据采样格式
      

  3.   

    hehe,原来都是红星星在说啊。以dat作为后缀的文件格式太多了。真的是鬼才知道。
    好多视频也是这样的,用视频软件试试,不行再换别的。
      

  4.   

    给你个好网站,差不多所有的文件格式在那里都有分析,爽死了,记得给分啊。
    http://www.wotsit.org
      

  5.   

    哪位可以找到WMA的文件格式,发给我,你说要多少分就多少分吧
      

  6.   

    to: coyer(我想换工作了,谁可以提供一下啊?) 
    他这个文件用UE打开,文件的前四个字节是RIFF,所以判断这个文件是riff文件
    你不知道就不要乱说
      

  7.   

    讨论不是叫骂,你怎么知道它是riff,我在文件前写上它,就能说是riff文件吗?
    要有一定的红星风度
      

  8.   

    我只是从一般的角度分析
    我给你做个错误的bmp难道你就能分析出它不是bmp么?
    说的都是没有意义的话
      

  9.   

    是视频文件是没有问题了,关键是AVC格式恐怕无人知晓,估计经过加密了,RIFF格式文件的FormType也有很多,但数据快都加密了就不好办了,我尝试用AVI格式填充,出现黑屏.
      

  10.   

    搞清文件格式再读。读文件,说到底,关键就是把文件的字节流打断,依次付给变量、或结构体成员、或初始化一个特定的文件数据对象。我搞过ttf字体文件和midi文件的解析。