2011-01-02 9 views
11

मुझे एक समस्या है जहां मुझे माइक्रोफ़ोन आउटपुट "अनुकरण" करने की आवश्यकता है।माइक्रोफ़ोन अनुकरण (वर्चुअल माइक)

नेटवर्क पर डेटा आ जाएगा, पीसीएम में डीकोड किया गया है और मूल रूप से माइक में लिखा जाना चाहिए - जो तब अन्य प्रोग्राम पढ़/रिकॉर्ड/जो कुछ भी पढ़ सकते हैं।

मैं अल्सा पर पढ़ रहा हूं लेकिन जानकारी बहुत अस्पष्ट है। फ़ाइल प्लगइन वादा करता प्रतीत होता है - मैं एक नामित पाइप को "infile" के रूप में सोचने के बारे में सोच रहा था जिसे मैं अपने आवेदन से डेटा वितरित कर सकता था। मैं इसे काम करने के लिए नहीं मिल सकता है (vlc/audacity बस segfault)।

pcm.testing { 
    type file 
    slave { 
    pcm { 
     type hw 
     card 0 
     device 0 
    } 
    } 
    infile "/dev/urandom" 
    format "raw" 
} 

वहाँ ऐसा करने का किसी भी बेहतर तरीके हैं? अल्सा प्लग-इन (विशेष रूप से फ़ाइल प्लगइन) पर कोई सुझाव?

उत्तर

7

आपकी आवाज नेटवर्क पर आ जाएगी और जब तक कुछ पढ़ना नहीं चाहेगा तब तक कैश कैसा होगा? या डेटा को त्याग दिया जाएगा? सामान्य रूप से नीचे की तरह कुछ (केवल मुश्किल से परीक्षण किया गया) वर्चुअल माइक के रूप में काम करना चाहिए, लेकिन मुझे लगता है कि यह हमेशा डिवाइस से खोले जाने पर फ़ाइल को हमेशा पढ़ेगा और आपको यह जांचने की आवश्यकता है कि यह फ़ाइल के अंत को कैसे प्रबंधित करता है। शायद आप पाइप का उपयोग करके इसे आजमाएंगे लेकिन फिर आने वाले डेटा को कैशिंग/डिस्कने से नेटवर्क से पढ़ने वाले एप द्वारा संभाला जाना चाहिए।

pcm.virtmic { 
    type file 
    format "raw" 
    slave.pcm "default" 
    file '/dev/null' 
    infile '/dev/urandom' 
} 

अधिक विकल्प के लिए alsa docs देखें।

फिर से, यह सुनिश्चित न करें कि यह टूल आपको वास्तव में कार्य के लिए आवश्यक है या नहीं। अगर आप 'इन्फाइल' विकल्प के साथ कमांड शुरू कर सकते हैं, तो यह वास्तव में निफ्टी होता, लेकिन आप दुर्भाग्यवश नहीं कर सकते ... दुर्भाग्य से आप नहीं कर सकते ...

आशा है कि मदद करता है।

अद्यतन: slave.pcm "शून्य" नहीं होना चाहिए बल्कि कुछ वास्तविक डिवाइस होना चाहिए। ऐसा लगता है कि समय के लिए प्रयोग किया जाता है या मुझे नहीं पता लेकिन शून्य कारणों से रिकॉर्डर प्रक्रिया हमेशा के लिए अवरुद्ध करने का कारण बनती है। यह डिवाइस आपको दिए गए नमूना दर पर मजबूर कर सकता है हालांकि सावधान रहें। "डिफ़ॉल्ट" का उपयोग करना एक सेन डिफ़ॉल्ट मान है। infile को सही/मिलान प्रारूप और दर के साथ एक कच्चे ध्वनि डेटा प्रदान करने की जरूरत है। बीटीडब्ल्यू आप अपने कार्य के लिए वैकल्पिक समाधान के लिए अल्सा सर्वर और जैकड और अन्य ध्वनि प्रणालियों और पुस्तकालयों को देख सकते हैं

संबंधित मुद्दे