我想在php中生成正弦波音。但是構建我的wav我需要以字節爲單位給出值。我不知道該怎麼做:在PHP中生成波形音
這裏是我的代碼:
$freqOfTone = 440;
$sampleRate = 44100;
$samplesCount = 80000;
$amplitude = 0.25 * 32768;
$w = 2 * pi() * $freqOfTone/$sampleRate;
//$dataArray = new
$text = "RIFF"
."80036"
."WAVE"
."fmt "
."16"
."1"
."1"
."44100"
."44100"
."1"
."8"
."data"
."80000";
for ($n = 0; $n < $samplesCount; $n++)
{
$text .= (int)($amplitude * sin($n * $w));
}
$myfile = fopen("sine.wav", "w") or die("Unable to open file!");
fwrite($myfile, $text);
fclose($myfile);
您將數據寫入「文本」中。波形文件是「二進制」的。 – 2015-01-20 19:09:31
@CommuSoft試圖說的是,您必須編寫字節值,而不是文本內容。例如,不必寫'44100',而必須寫'0xAC44'字節。 – 2015-01-20 19:31:21
@ Ismael Miguel - 那爲什麼他不使用80036的字節值? – lopata 2015-01-20 19:35:07