2012-12-11 11 views
5

Öyle kolay gitmek eşyasıyla acemiyim ile belli bir frekansta bir .wav dosyası oluşturun... PHP

Ben PHP kullanarak belli bir frekansta basit bir sesi inşa yapmak istediğim. Bir HTML ses etiketine doğrudan eklenebilen bir .wav dosyası vermelidir.

Ses verilerinin nasıl saklandığını anlamadığım için nereden başlayacağımı bilmiyorum. Bir kaynak önerebilir veya doğrudan bana yardım edebilir mi?

Bu muchly mutluluk duyacağız :) Ben aradığım şey olduğunu sanmıyorum gerçi

P.S., bir benzer soru var.

+4

sen? PHP yanında dış programlarını kullanabilir sunucudaki ses dosyasını oluşturmak için [sox] 'u (http://sox.sourceforge.net/sox.html) kullanarak ve daha sonra iletin. 1 kHz'de 3 sn'lik bir sinüs oluşturmak için şunları kullanın: Outputn output.wav synth 3 sine 1000' – Carsten

+0

Muhtemelen doğru veri yapısı oluşturularak php de mümkündür. Bunu yapmak için .wav dosya biçiminin belgelerini bulma meselesi. –

+0

PHP'yi kullanmak istediğiniz belirli bir neden var mı? Ben, PHP'de, @TomB'nin önerdiği gibi, teknik özelliklerin aranması ve dosyaya ikili veri yazmanın dışında bir şey yapmanıza yardımcı olacağına inanmıyorum. – Dracs

cevap

1

Bunu deneyin. (Saf bir PHP çözüm değil bu yüzden SoX kullanır ama iyi çalışıyor.

HTML'iniz

<embed height="50" width="100" src="/test.php?tone=1000"> 

PHP'niz

bu yüzden, ben tavsiye ederse
<?php 
    $tempFile = tempnam(sys_get_temp_dir(), 'AUD') . '.wav'; 
    $pitch = (int)$_GET['tone']; 

    exec("sox -n $tempFile synth 5 sin $pitch"); 

    header('Cache-Control: max-age=604800'); 
    header('Content-type: audio/x-wav'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: '.filesize($tempFile)); 
    readfile($tempFile);