WAV PCM文件的最大优点在于,你无需进行任何绑定操作,就能将来自两个文件的二进制音频数据连接起来。你只需把其中一个文件的二进制数据粘合到另一个文件的末尾,再调整一下Subchunk2Size,即可实现两个文件的接合。唯一的缺点是这两个文件的式必须相同;在
WAV PCM文件的最大优点在于,你无需进行任何绑定操作,就能将来自两个文件的二进制音频数据连接起来。你只需把其中一个文件的二进制数据粘合到另一个文件的末尾,再调整一下Subchunk2Size值,即可实现两个文件的接合。唯一的缺点是这两个文件的格式必须相同;在本例中,不涉及问题。
当解析音频文件时,先将二进制音频数据读入一个缓冲数组中,然后再将另一个文件的数据读到这个数组的末端。重复这一过程直到所有的文件都被读取完毕。创建一个FILESTRUCT结构,填入格式信息,调整Subchunk2Size值,将Data成员设为缓冲数组,将FILESTRUCT写为需要的输出格式。对于基于PHP的Web发布系统,其输出为标准输出。以下为示范代码:
本调用的第一个参数是对FILESTRUCT对象的引用。第二个参数是对一列文件名字符串的引用。在每次for循环中,我都将列表中的一个文件名载入一个FILESTRUCT中,然后再将每一个FILESTRUCT的Data属性提取出来,并合并到一个现有的缓冲区中。完成以上操作后,我通过一个事先声明的全局变量对FILESTRUCT参数对象的属性进行设定,然后改变Subchunk2Size属性,并将Data属性设为新的缓冲区。
你可能注意到,我使用了一些功能函数来填充FILESTRUCT结构、计算来自little endian字节数组的数值、创建little endian字节数组和拆分字符串为二进制数组。以下为这些函数:
为了实现这个类的功能,你可以创建一个CStitcher实例并调用StitchFiles()方法,以传递合适的参数:
$ChunkID_ = array(0x52, 0x49, 0x46, 0x46); //"RIFF" big endian
$FileFormat_ = array(0x57, 0x41, 0x56, 0x45); //"WAVE" big endian
$Subchunk1ID_ = array(0x66, 0x6D, 0x74, 0x20); //"fmt" big endian
$AudioFormat_ = array(0x1, 0x0); //PCM = 1 little endian
$Stereo_ = array(0x2, 0x0); //Stereo = 2 little endian
$Mono_ = array(0x1, 0x0); //Mono = 1 little endian
$SampleRate_ = array(0x44, 0xAC, 0x0, 0x0); //44100 little endian
$BitsPerSample_ = array(0x10, 0x0); //16 little endian
$Subchunk2ID_ = array(0x64, 0x61, 0x74, 0x61); //"data" big endian
$files = array("C:\\Inetpub\\wwwroot\\Test\\PHP\\1.wav",
"C:\\Inetpub\\wwwroot\\Test\\PHP\\2.wav");
$Stitcher = new CStitcher();
$file = new FILESTRUCT();
$Stitcher->StitchFiles($file, $files);
可用以下代码将二进制数据写到HTTP输出中:
以下是一段HTML代码,用于测试结果:
如果你有兴趣学习更多关于WAV PCM f格式的知识,请访问我获得这类信息的网站

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
