2010-03-02 19 views
22

मैं कैमरा पूर्वावलोकन कैप्चर पर देशी कैमरा शटर ध्वनि क्लिप खेलना चाहता हूं। मैं takePicture() कहा जाता है जब खेला ध्वनि क्लिप का जिक्र कर रहा हूँ।
मैं यह कैसे कर सकता हूं? क्या कोई मुझे चरणों के माध्यम से चल सकता है?एंड्रॉइड पर देशी कैमरा ध्वनि कैसे खेलें

उत्तर

2

इस संसाधन कैसे ऑडियो फ़ाइलें खेलने के लिए बताते हैं: https://developer.android.com/guide/topics/media/index.html

आप शायद अपने स्वयं के शटर ध्वनि प्रभाव प्रदान करना होगा।

9

आप SoundPool

SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_NOTIFICATION, 0); 
int shutterSound = soundPool.load(this, R.raw.camera_click, 0); 

उपयोग करने के लिए और फिर http://developer.android.com/reference/android/media/SoundPool.html आवाज बाहर खेलने के लिए

soundPool.play(shutterSound, 1f, 1f, 0, 0, 1); 

चेक मापदंडों को समझने के लिए चाहते हो सकता है।

आपको अपनी परियोजना में res_ raw पर camera_click.ogg नामक एक मीडिया फ़ाइल की आवश्यकता होगी। यदि आपके प्रोजेक्ट को अपाचे लाइसेंस के तहत लाइसेंस प्राप्त है, तो आपको एंड्रॉइड डिफ़ॉल्ट ध्वनि का उपयोग करने में सक्षम होना चाहिए जो एंड्रॉइड ओपन सोर्स प्रोजेक्ट से निम्नलिखित स्थान (फ्रेमवर्क/बेस/डेटा/ध्वनियां/प्रभाव/कैमरा_क्लिक.ओजीजी) में प्राप्त किया जा सकता है। अगर आपकी परियोजना को अपाचे लाइसेंस के तहत लाइसेंस प्राप्त नहीं है तो मुझे पता नहीं है कि आप इसका उपयोग कर सकते हैं या नहीं। मैं वकील नहीं हूँ।

+0

दस्तावेज़ों से: "प्राथमिकता फ़ील्ड: ध्वनि की प्राथमिकता। वर्तमान में इसका कोई प्रभाव नहीं है। भविष्य की संगतता के लिए 1 का मान उपयोग करें।" – greg7gkb

+0

अपाचे लाइसेंस बहुत अनुमोदित है; आप किसी भी परियोजना में अपने संसाधनों का उपयोग कर सकते हैं। दूसरी तरफ, डिवाइस पर पहले से उपलब्ध ध्वनि की तलाश करना संभव है। –

19

तो सिस्टम फ़ाइल है, तो आप इसे इस तरह का उपयोग कर सकते हैं:

public void shootSound() 
{ 
    AudioManager meng = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); 
    int volume = meng.getStreamVolume(AudioManager.STREAM_NOTIFICATION); 

    if (volume != 0) 
    { 
     if (_shootMP == null) 
      _shootMP = MediaPlayer.create(getContext(), Uri.parse("file:///system/media/audio/ui/camera_click.ogg")); 
     if (_shootMP != null) 
      _shootMP.start(); 
    } 
} 
+5

कोड की शुरुआत में जोड़ें: MediaPlayer _shootMP = null; – Derzu

+2

@ डर्ज़ू: मेरे मामले में '_sootMP' कैमरा गतिविधि का एक वर्ग सदस्य था। हर कैप्चर के लिए इसे फिर से बनाने की जरूरत नहीं है। –

+0

आपके मामले में बहुत अच्छा है, लेकिन पाठकों को अभी भी यह जानने की जरूरत है कि यह क्या है। –

45

आप (एपीआई 16 से उपलब्ध है) MediaActionSound वर्ग का उपयोग कर सकते हैं। उदाहरण के लिए:

MediaActionSound sound = new MediaActionSound(); 
sound.play(MediaActionSound.SHUTTER_CLICK); 
+0

इस विधि के लिए कोई मात्रा नहीं है? यह शटर ध्वनि को पूर्ण मात्रा में विस्फोट करता है, भले ही डिवाइस पर वॉल्यूम सेट हो। – Hashman

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