2012-12-11 14 views
5

मैं इस सामान के साथ एकदम शुरुआत कर रहा हूँ इतना आसान जाना के साथ एक निश्चित आवृत्ति की एक .wav फ़ाइल बनाएँ ...पीएचपी

सभी मैं PHP का उपयोग एक निश्चित आवृत्ति का एक सरल स्वर का निर्माण कर रहा है करना चाहते हैं। इसे एक .wav फ़ाइल आउटपुट करना चाहिए जिसे सीधे HTML ऑडियो टैग में डाला जा सकता है।

मुझे वास्तव में पता नहीं है कि कहां से शुरू करना है क्योंकि मुझे यह भी समझ में नहीं आता कि ऑडियो डेटा कैसे संग्रहीत किया जाता है। क्या कोई संसाधन का सुझाव दे सकता है या सीधे मेरी मदद कर सकता है?

यह muchly की सराहना की जाएगी :)

पी.एस वहाँ, एक समान सवाल यह है कि हालांकि मैं यह मैं क्या देख रहा हूँ है नहीं लगता।

+4

आप PHP के अलावा बाहरी प्रोग्राम का उपयोग कर सकते हैं? यदि हां, तो मेरा सुझाव है सर्वर पर ऑडियो फ़ाइल जेनरेट करने के लिए [sox] (http://sox.sourceforge.net/sox.html) का उपयोग करके और उसके बाद इसे पास करें। 1 सेकेंड में 3 सेकंड साइन उत्पन्न करने के लिए, आप इसका उपयोग करेंगे: 'sox -n output.wav synth 3 sine 1000' – Carsten

+0

संभवतः सही डेटा संरचना बनाकर यह php में भी संभव होगा। यह बी हो सकता है ई ऐसा करने के लिए .wav फ़ाइल प्रारूप के दस्तावेज़ ढूंढने का विषय है। –

+0

क्या कोई विशिष्ट कारण है कि आप PHP का उपयोग करना चाहते हैं? मुझे विश्वास नहीं है कि PHP में कुछ भी है जो आपको @TomB के अलावा ऐसा करने में मदद करता है, विनिर्देशों को देखता है और फ़ाइल में बाइनरी डेटा लिखता है। – Dracs

उत्तर

1

इसे आजमाएं। (यह सॉक्स का उपयोग करता है तो यह एक शुद्ध पीएचपी समाधान नहीं है, लेकिन यह अच्छी तरह से काम करता है।

आपका HTML

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

आपका पीएचपी

<?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);