wav 파일 구조를 파악하여 생성하는 코드 변경
This commit is contained in:
17
plugin/captcha/info.php
Normal file
17
plugin/captcha/info.php
Normal 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);
|
||||
?>
|
||||
@ -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;
|
||||
?>
|
||||
|
||||
BIN
plugin/captcha/wavs/captcha.wav
Normal file
BIN
plugin/captcha/wavs/captcha.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user