2015-11-08 9 views
5

मेरे सप्ताहांत प्रोजेक्ट के लिए मैं एक साधारण प्रोग्राम बनाने की कोशिश कर रहा हूं जो किसी भी ध्वनि को आउटपुट करने के लिए प्रोग्राम/प्रक्रिया की प्रतीक्षा करता है, और जब/तो यह कुछ करता है।जावा - पता लगाएं कि एप्लिकेशन आउटपुट ध्वनि

स्यूडोकोड में

:

if (application.outputsSound()) { 
    /* Do something */ 
} 

शुरुआत के लिए यह किसी भी विशिष्ट अनुप्रयोग से आ रही ध्वनि हो सकता है, लेकिन अगर यह एक संग्रहीत ऑडियो फाइल के आधार पर एक विशिष्ट ध्वनि की पहचान करने के लिए कारण के भीतर है, जो वास्तव में शांत हो जाएगा।

मेरे विचार: मुझे लगता है कि मुझे किसी प्रकार की मूल पुस्तकालय (जेएनआई/जेएनए) की आवश्यकता है, लेकिन जब से मैं इसके लिए नया हूं, तो यह वास्तव में साफ होगा अगर कोई मुझे सही दिशा में इंगित कर सकता है।

+0

दिलचस्प सवाल। मुझे लगता है कि आपको ऑडियो प्रोसेसिंग के लिए कॉल करने वाली प्रक्रियाओं को पुनर्प्राप्त करने के लिए अपने ऑडियो ड्राइवर या कम से कम अपने ओएस के साथ इंटरफेस करने की आवश्यकता होगी। जावा में यह संभव होना चाहिए, हालांकि यह सी/सी ++ में शायद आसान होगा क्योंकि अधिकांश निम्न स्तरीय सॉफ़्टवेयर जैसे कि हम उन भाषाओं में कोडित हैं – Aaron

+1

आधुनिक ऑपरेटिंग सिस्टम पर, उपयोगकर्ता-स्पेस प्रक्रिया में मिश्रण किया जाता है डिवाइस ड्राइवर के बजाए ऑडियो सर्वर के रूप में कार्य करता है। कोई भी कम नहीं, इसे प्राप्त करना मंच निर्भर है। – marko

उत्तर

0

विंडोज पर आप IAudioSessionEnumerator इंटरफ़ेस

https://msdn.microsoft.com/en-us/library/windows/desktop/dd368281(v=vs.85).aspx

इस्तेमाल कर सकते हैं हालांकि यह सही नहीं है, तीसरे पक्ष के ऑडियो के ढेर दिखाई नहीं देंगे के रूप में, ASIO की तरह।

लिनक्स पर यह इस बात पर निर्भर करता है कि आप किस प्रकार के पर्यावरण का उपयोग कर रहे हैं।

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