wav 파일 구조를 파악하여 생성하는 코드 변경

This commit is contained in:
gnuboard
2013-01-04 14:54:46 +09:00
parent fd7097cde3
commit 7fb3a13922
3 changed files with 33 additions and 4 deletions

17
plugin/captcha/info.php Normal file
View File

@ -0,0 +1,17 @@
<?php
include_once("./_common.php");
// prepare an array of wavfiles
$lc ='/home/tmp/g4s/plugin/captcha/wavs/';
$wav = $lc.'captcha.wav';
$fields = join('/',array( 'H8ChunkID', 'VChunkSize', 'H8Format',
'H8Subchunk1ID', 'VSubchunk1Size',
'vAudioFormat', 'vNumChannels', 'VSampleRate',
'VByteRate', 'vBlockAlign', 'vBitsPerSample' ));
$fp = fopen($wav,'rb');
$header = fread($fp,36);
$info = unpack($fields,$header);
print_r2($info);
?>

View File

@ -42,8 +42,8 @@ function joinwavs($wavs)
'H8Subchunk1ID', 'VSubchunk1Size',
'vAudioFormat', 'vNumChannels', 'VSampleRate',
'VByteRate', 'vBlockAlign', 'vBitsPerSample' ));
$data = '';
$info = array();
foreach($wavs as $wav){
$fp = fopen($wav,'rb');
$header = fread($fp,36);
@ -65,8 +65,20 @@ function joinwavs($wavs)
$data .= fread($fp,$size);
}
return $header.pack('V',strlen($data)).$data;
return ''
.pack('a4', 'RIFF')
.pack('V', strlen($data) + 36)
.pack('a4', 'WAVE')
.pack('a4', 'fmt ')
.pack('V', $info['Subchunk1Size']) // 16
.pack('v', $info['AudioFormat']) // 1
.pack('v', $info['NumChannels']) // 1
.pack('V', $info['SampleRate']) // 8000
.pack('V', $info['ByteRate']) // 8000
.pack('v', $info['BlockAlign']) // 1
.pack('v', $info['BitsPerSample']) // 8
.pack('a4', 'data')
.pack('V', strlen($data))
.$data;
}
exit;
?>

Binary file not shown.