91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

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

資源截圖

代碼片段和文件信息

//?AddPcmFileHeader.cpp?:?定義控制臺應用程序的入口點。
//

#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頭的結構如下所示:
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頭而準備的變量
HEADER??pcmHEADER;
FMT??pcmFMT;
DATA?pcmDATA;

unsigned???short???m_pcmData;?????//讀入.pcm和寫入文件.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(?“打開pcm文件出錯?\n“);??????
exit(0);
}

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


//以下是創(chuàng)建wav頭的HEADER;但.dwsize未定,因為不知道Data的長度。
strncpy(pcmHEADER.fccID?“RIFF“4);???????????
//pcmHEADER.dwsize==?
strncpy(pcmHEADER.fccType?“WAVE“?4);
fseek(fpCpysizeof(HEADER)SEEK_CUR);?//跳過HEADER的長度,以便下面繼續(xù)寫入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

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

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

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

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????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


評論

共有 條評論