मैं PortAudio का सफलतापूर्वक उपयोग किया गया है।
मैं अपने खिलौना कार्यक्रम से कुछ अंश ले लिया एक बहुत ही सरल "गूंज" उदाहरण बनाने के लिए नीचे दिए गए:।
(हेडफोन के साथ चलाने के इस वक्ताओं करने के लिए माइक से एक राय पाश है और बहुत जोर से बन सकते हैं कुछ प्रतिक्रिया दौर के बाद)
import Control.Monad (forever)
import Data.Int (Int16)
import Foreign.Ptr (nullPtr)
import Sound.PortAudio
initPortAudio :: Int -> IO (PaStream Int16)
initPortAudio blockSize = do
Right NoError <- initialize
Just micDevIdx <- getDefaultInputDevice
Just spkDevIdx <- getDefaultOutputDevice
Right paStream <-
openStream
(Just (StreamParameters micDevIdx 1 PaInt16 0.1 nullPtr))
(Just (StreamParameters spkDevIdx 1 PaInt16 0.1 nullPtr))
44100 blockSize
:: IO (Either String (PaStream Int16))
Right NoError <- startStream paStream
let zeroBlock = replicate blockSize [0]
Right NoError <- writeStream paStream zeroBlock blockSize
return paStream
main :: IO()
main = do
paStream <- initPortAudio blockSize
forever $ do
Right numSampsAvail <- getStreamReadAvailable paStream
Right curSamps <- readStream paStream 1 numSampsAvail
Right NoError <- writeStream paStream curSamps numSampsAvail
return()
where
blockSize = 0x800
GHC 6.10.4 साथ तेंदुए में यहां काम करता है।
मेरा अपना खिलौना कार्यक्रम वास्तव में केवल ऑडियो इनपुट का उपयोग करता है, और यह (कर कि PortAudio शिकायत के बिना) ऑडियो आउटपुट के लिए शून्य आउटपुट।
आपने पोर्टौडियो लाइब्रेरी को कैसे इंस्टॉल किया? मैंने इसे मैकपोर्ट्स के माध्यम से स्थापित किया है और अब हैकेल लाइब्रेरी शिकायत कर रही है कि पोर्टौडियो लाइब्रेरी गलत आर्किटेक्चर है। – Edward
तो स्पष्ट रूप से यह हिम तेंदुए से डिफ़ॉल्ट रूप से सभी 64 बिट होने से संबंधित है, लेकिन जीएचसी अभी भी 32 बिट है। 32 बिट के रूप में पोर्टौडियो बनाने की कोशिश भी विफल रहता है। – Edward
@ एडवर्ड एम्सडन: मैंने मैकपोर्ट का उपयोग नहीं किया। मैंने स्थिर संस्करण v19_20071207 के लिए 'कॉन्फ़िगर करें' .. 'इंस्टॉल करें '। सौभाग्य। – yairchu