C #, .NET में साउंड कैसे चलाएं


124

मेरे पास C # /। NET में लिखा गया एक विंडोज़ एप्लीकेशन है।

जब एक बटन क्लिक किया जाता है तो मैं एक विशिष्ट ध्वनि कैसे खेल सकता हूं?

जवाबों:


233

आप उपयोग कर सकते हैं:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();

32
यह एकदम सही जवाब है क्योंकि एक नया उपयोगकर्ता समझ सकता है कि साउंडप्लेयर System.Media से संबंधित है ....
खिलन मनियार

30
@Ali ... stackoverflow.com/questions/2361857/what-does-means-in-c-sharp "इसका अर्थ है निम्नलिखित स्ट्रिंग को शाब्दिक रूप से व्याख्या करना। मतलब, स्ट्रिंग में \" वास्तव में एक "" "होगा। आउटपुट, बजाय "\\" शाब्दिक चरित्र का मतलब करने के लिए "
प्रवीण

@ प्रवीण के जवाब ने सिर्फ एक और जानकारीपूर्ण तथ्य दिया। डेक्सटर का धन्यवाद कि "@" प्रतीक।
एलन लिनाटोक

2
@ रिपोर्टर, यह एमपी 3 फ़ाइलों के साथ काम नहीं करता है; यह केवल wav प्रारूप तक ही सीमित है
Najeeb

यह एपीआई क्या शर्म की बात है! यह न तो एमपी 3 और न ही MIDI फ़ाइलें निभाता है। मेरे लिए पूरी तरह से बेकार है। विंडोज में कम से कम विंडोज एक्सपी के बाद से एमपी 3 और मिडी के लिए मूल समर्थन है। Microsoft पर शर्म आनी चाहिए!
एल्म्यू

91

आप उदाहरण के लिए, SystemSound का उपयोग कर सकते हैं System.Media.SystemSounds.Asterisk.Play();


बहुत उपयोगी। यह सिस्टम डिफॉल्ट्स का उपयोग करने में मदद कर सकता है।
बाबक.आबाद

4
यह ध्यान रखना महत्वपूर्ण है कि यदि आप विंडोज सेटिंग्स (कम से कम नए विंडोज) में सिस्टम ध्वनियों को बंद कर देते हैं तो यह कुछ भी नहीं खेलता है।
आर्थोल

32

विंडोज फॉर्म के लिए एक तरह से उपयोग करना है SoundPlayer

private void Button_Click(object sender, EventArgs e)
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

MSDN पृष्ठ

यह WPF के साथ भी काम करेगा, लेकिन आपके पास MSDN पेज का उपयोग करने जैसे अन्य विकल्प हैंMediaPlayer


1
उत्पादन कोड में और भी बेहतर, इसे केवल एक बार बनाएं और इसे हर बार बटन दबाने के बजाय इसे बनाने के लिए कई बार उपयोग करें।
शिबुमी

मैं उस फ़ंक्शन का नाम बदल दूंगा ButtonClick, केवल इसलिए क्योंकि ऐसा लगता है कि यह C # नामकरण की शैली का अनुसरण करता है।
एथन बीरेलिन

1
@EthanBierlein - यह शायद नामकरण परंपरा जब मैं उत्तर पोस्ट किया गया था;)
ChrisF

1
हुह। तो क्या यह पुराना सम्मेलन था?
एथन बीरेलिन

@EthanBierlein यह अभी भी विजुअल स्टूडियो के विंडोज फॉर्म प्रोजेक्ट्स द्वारा ऑटोजेनर किया गया है
JAD

13

अतिरिक्त जानकारी।

यह उन अनुप्रयोगों के लिए एक उच्च स्तरीय उत्तर है जो विंडोज वातावरण में मूल रूप से फिट होना चाहते हैं। अन्य उत्तर में विशेष ध्वनि बजाने के तकनीकी विवरण प्रदान किए गए थे। इसके अलावा, हमेशा इन दो बिंदुओं पर ध्यान दें:

  1. विशिष्ट परिदृश्यों में पाँच मानक प्रणाली ध्वनियों का उपयोग करें , अर्थात

    • तारांकन - जब आप वर्तमान घटना को उजागर करना चाहते हैं तो खेलें

    • प्रश्न - प्रश्नों के साथ खेलते हैं (सिस्टम मैसेज बॉक्स विंडो इसे प्ले करता है)

    • विस्मयादिबोधक - विस्मयादिबोधक चिह्न के साथ खेलते हैं (सिस्टम संदेश बॉक्स विंडो यह एक निभाता है)

    • बीप (डिफ़ॉल्ट सिस्टम साउंड)

    • महत्वपूर्ण रोक ("हाथ") - त्रुटि के साथ खेलें (सिस्टम संदेश बॉक्स विंडो यह एक खेलता है)
       

    कक्षा के तरीके System.Media.SystemSoundsउन्हें आपके लिए खेलेंगे।
     

  2. साउंड कंट्रोल पैनल में अपने उपयोगकर्ताओं द्वारा अनुकूलन के रूप में किसी भी अन्य ध्वनियों को लागू करें

    • इस तरह से उपयोगकर्ता आपके एप्लिकेशन से ध्वनियों को आसानी से बदल या निकाल सकते हैं और आपको इसके लिए कोई उपयोगकर्ता इंटरफ़ेस लिखने की आवश्यकता नहीं है - यह पहले से ही है
    • प्रत्येक उपयोगकर्ता प्रोफ़ाइल इन ध्वनियों को अपने तरीके से ओवरराइड कर सकती है
    • कैसे:

इस अतिरिक्त जानकारी के लिए धन्यवाद। मैं एक उदाहरण जोड़ना चाहूंगा: System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);साउंड हैंड बजाता है । ध्यान दें कि यह एसिंक्रोनस रूप से खेलता है, यहां मैंने ध्वनि के पूरा होने की प्रतीक्षा करने के लिए एक नींद कमांड जोड़ा। यदि आप प्रतीक्षा नहीं करते हैं, और दूसरी ध्वनि खेलते हैं, तो पिछला एक तुरंत बंद हो जाता है।
मैट


2

C # का उपयोग करते हुए विंडोज फॉर्म में एक ऑडियो फ़ाइल चलाने के लिए आइए इस प्रकार से सरल उदाहरण देखें:

1.Go विजुअल स्टूडियो (VS-2008/2010/2012) -> फ़ाइल मेनू -> नई परियोजना पर क्लिक करें।

2. नई परियोजना में -> विंडोज फॉर्म एप्लिकेशन पर क्लिक करें -> नाम दें और फिर ठीक पर क्लिक करें।

एक नया "विंडोज फॉर्म" प्रोजेक्ट खुल जाएगा।

3.ड्रैग-एंड-ड्रॉप एक बटन नियंत्रण टूलबॉक्स से विंडोज फॉर्म में।

4.डबल-क्लिक करें बटन स्वचालित रूप से डिफ़ॉल्ट ईवेंट हैंडलर बनाने के लिए, और निम्न कोड जोड़ें।

यह कोड फ़ाइल ओपन डायलॉग बॉक्स को प्रदर्शित करता है और परिणामों को "playSound" नामक एक विधि में भेजता है जिसे आप अगले चरण में बनाएंगे।

 OpenFileDialog dialog = new OpenFileDialog();
 dialog.Filter = "Audio Files (.wav)|*.wav";


if(dialog.ShowDialog() == DialogResult.OK)
{
  string path = dialog.FileName;
  playSound(path);
}

5. बटन विधि के तहत निम्नलिखित विधि कोड जोड़ें। क्लिक करें घटना हैंडर।

 private void playSound(string path)
 {
   System.Media.SoundPlayer player = new System.Media.SoundPlayer();
   player.SoundLocation = path;
   player.Load();
   player.Play();
 }

6.अब कोड को चलाने के लिए F5 दबाकर एप्लिकेशन को चलाएं।

बटन पर क्लिक करें और एक ऑडियो फ़ाइल का चयन करें। फ़ाइल लोड होने के बाद, ध्वनि बजाएगा।

मुझे आशा है कि यह शुरुआती के लिए उपयोगी उदाहरण है ...


1

मुझे लगता है कि आपको सबसे पहले संसाधन के लिए .wav फ़ाइल को जोड़ना होगा। उदाहरण के लिए आपके पास Sound.wav नाम की ध्वनि फ़ाइल है। आपके द्वारा Sound.wav फ़ाइल को संसाधन में जोड़ने के बाद, आप इस कोड का उपयोग कर सकते हैं:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();

यह ध्वनि बजाने का एक और तरीका है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.