xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-13
  • 語(yǔ)言: 其他
  • 標(biāo)簽: WAV??格式??PCM??文件頭??

資源簡(jiǎn)介

有時(shí)DUMP下了PCM格式的數(shù)據(jù)流,要在電腦或者其它設(shè)備上聽(tīng),驗(yàn)證其聲音是否正確,該小程序就是給PCM數(shù)據(jù)流添加一個(gè)WAV的文件頭,讓播放器可以以WAV格式正常播放PCM數(shù)據(jù). 例子中代碼固定寫(xiě)了44.1K采樣,雙聲道,量化BIT為16,如果格式不一致,改宏定義即可.

資源截圖

代碼片段和文件信息

//?AddPcmFileHeader.cpp?:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//

#include?“stdafx.h“
#include?
#include?
#include?


//pcm文件的聲道數(shù)
#define?PCM_CHANNEL_NUM????????????2
//pcm文件的采樣率
#define?PCM_SAMPLE_RATE????????????44100
//?每次采樣占用的位數(shù)?8/16/32等
#define?PCM_SAMPLE_BITS????????????16

/*
?*?wav?文件格式
?------------------------------------------------
?|?????????????RIFF?WAVE?Chunk??????????????????|
?|?????????????ID??=?‘RIFF‘?????????????????????|
?|?????????????RiffType?=?‘WAVE‘????????????????|
?------------------------------------------------
?|?????????????Format?Chunk?????????????????????|
?|?????????????ID?=?‘fmt?‘??????????????????????|
?------------------------------------------------
?|?????????????Fact?Chunk(optional)?????????????|
?|?????????????ID?=?‘fact‘??????????????????????|???(此Chunk可選)
?------------------------------------------------
?|?????????????Data?Chunk???????????????????????|
?|?????????????ID?=?‘data‘??????????????????????|
?------------------------------------------------

?*/


//wav頭的結(jié)構(gòu)如下所示:
typedef???struct??
{
char?????fccID[4];????
unsigned???long??????dwSize;????
char?????fccType[4];???
}HEADER;?//RIFF?WAVE?Chunk

typedef???struct??
{
char????fccID[4];?????
unsigned???long??dwSize;???????
unsigned???short????wFormatTag;????
unsigned???short????wChannels;????
unsigned???long?????dwSamplesPerSec;??
unsigned???long?????dwAvgBytesPerSec;??
unsigned???short????wBlockAlign;???
unsigned???short????uiBitsPerSample;??
}FMT;?//Format?Chunk

typedef???struct?
{
char????fccID[4];????
unsigned???long?????dwSize;?????
}DATA;?//Data?Chunk
//以上是wav頭文件

int?_tmain(int?argc?_TCHAR*?argv[])
{

//以下是為了建立.wav頭而準(zhǔn)備的變量
HEADER??pcmHEADER;
FMT??pcmFMT;
DATA?pcmDATA;

unsigned???short???m_pcmData;?????//讀入.pcm和寫(xiě)入文件.wav數(shù)據(jù)變量
FILE???*fp*fpCpy;


if(argc!=2)
{
printf(“?Usage:?%s??PCM_FILE\n“);
return?1;

}

if((fp=fopen(argv[1]???“rb?“))???==???NULL)??//讀取文件
{
printf(?“打開(kāi)pcm文件出錯(cuò)?\n“);??????
exit(0);
}

if((fpCpy=fopen(“output_pcm.wav“???“wb+“))???==???NULL)??//為轉(zhuǎn)換建立一個(gè)新文件
{
fclose(fp);
printf(?“創(chuàng)建wav文件出錯(cuò)\n?“);??????
exit(0);
}???


//以下是創(chuàng)建wav頭的HEADER;但.dwsize未定,因?yàn)椴恢繢ata的長(zhǎng)度。
strncpy(pcmHEADER.fccID?“RIFF“4);???????????
//pcmHEADER.dwsize==?
strncpy(pcmHEADER.fccType?“WAVE“?4);
fseek(fpCpysizeof(HEADER)SEEK_CUR);?//跳過(guò)HEADER的長(zhǎng)度,以便下面繼續(xù)寫(xiě)入wav文件的數(shù)據(jù);
//以上是創(chuàng)建wav頭的HEADER;

if(ferror(fpCpy))
{??
printf(?“error!\n?“);??????????????
}

//以下是創(chuàng)建wav頭的FMT;
strncpy(pcmFMT.fccID?“fmt?“4);
pcmFMT.dwSize=16;
pcmFMT.wFormatTag=1;

pcmFMT.wChannels=PCM_CHANNEL_NUM;??//幾聲道此處為2聲音左右立體聲
pcmFMT.dwSamplesPerSec=PCM_SAMPLE_RATE;?//采樣率44.1KHz

//每個(gè)采樣需要的bit數(shù)?
pcmFMT.uiBitsPerSample=PCM_SAMPLE_BITS;?

//?每秒所需字節(jié)數(shù)?(采樣率*聲道數(shù)*每個(gè)采樣所需的BIT?/8?)
pcmFMT.dwAvgBytesPerSec=pcmFMT.dwSamplesPerSec?*?pcmFMT.wChannels?*?pcmFMT.uiBitsPerSample?/?8;

//數(shù)據(jù)塊對(duì)齊單位(每個(gè)采樣需要的字節(jié)數(shù):?采樣位*聲道數(shù)/8)
pcmFMT.wB

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????4401??2014-04-23?11:23??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader\AddPcmFileHeader.cpp

?????文件???????4178??2014-04-23?10:04??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader\AddPcmFileHeader.vcproj

?????文件???????1004??2014-04-23?09:23??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader\ReadMe.txt

?????文件????????221??2014-04-23?09:23??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader\stdafx.cpp

?????文件????????378??2014-04-23?09:23??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader\stdafx.h

?????文件????????913??2014-04-23?09:23??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader.sln

????..A..H.?????10752??2014-04-23?15:45??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader.suo

?????目錄??????????0??2014-04-24?17:09??給PCM數(shù)據(jù)流加WAV格式文件頭\AddPcmFileHeader

?????目錄??????????0??2014-04-24?17:09??給PCM數(shù)據(jù)流加WAV格式文件頭

-----------?---------??----------?-----??----

????????????????21847????????????????????9


評(píng)論

共有 條評(píng)論