मूल पोस्ट में प्रदान किए गए कोड में यह सबसे महत्वपूर्ण हिस्सा है।
Button one = (Button) this.findViewById(R.id.button1);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.soho);
one.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
mp.start();
}
});
इसे चरण दर चरण समझाने के लिए:
Button one = (Button) this.findViewById(R.id.button1);
सबसे पहले बटन के इनिशियलाइज़ेशन का उपयोग ध्वनि बजाने में किया जाता है। हम उस गतिविधि को उपयोग करते हैं findViewById
, जिसे हमने उस ईद को दिया है (इस उदाहरण के मामले R.id.button1
में:), उस बटन को प्राप्त करने के लिए जिसे हमें ज़रूरत है। हमने इसे Button
इसलिए डाला ताकि हम इसे उस चर को निर्दिष्ट करना आसान बना सकें one
जिसे हम शुरू कर रहे हैं। यह बताने के लिए कि यह कैसे काम करता है, इस दायरे से बाहर है। यह एक संक्षिप्त अंतर्दृष्टि देता है कि यह कैसे काम करता है।
final MediaPlayer mp = MediaPlayer.create(this, R.raw.soho);
यह है कि कैसे एक इनिशियलाइज़ करने के लिए MediaPlayer
। MediaPlayer स्टैटिक फ़ैक्टरी विधि डिज़ाइन पैटर्न का अनुसरण करता है । एक उदाहरण प्राप्त करने के लिए, हम इसकी create()
विधि को कहते हैं और इसे संदर्भ और ध्वनि के संसाधन क्रमांक से खेलते हैं जिसे हम इस मामले में खेलना चाहते हैं R.raw.soho
। हम इसे घोषित करते हैं final
। जॉन स्कीट ने इस बात पर शानदार विवरण दिया कि हम यहां ऐसा क्यों करते हैं ।
one.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//code
}
});
अंत में, हम यह निर्धारित करते हैं कि हमारा पहले का आरंभिक बटन क्या करेगा। बटन पर एक ध्वनि खेलते हैं! ऐसा करने के लिए, हम OnClickListener
अपने बटन का सेट करते हैं one
। अंदर केवल एक विधि है, onClick()
जिसमें बटन पर क्लिक करने के लिए क्या निर्देश होना चाहिए ।
public void onClick(View v) {
mp.start();
}
ध्वनि चलाने के लिए, हम MediaPlayer की start()
विधि कहते हैं। यह विधि ध्वनि के प्लेबैक को शुरू करती है।
वहां, अब आप एंड्रॉइड में बटन पर एक ध्वनि क्लिक कर सकते हैं!
बोनस हिस्सा:
जैसा कि नीचे टिप्पणी में उल्लेख किया गया है धन्यवाद लैंगस्टन गुस्टेल! , और जैसा कि एंड्रॉइड डेवलपर संदर्भ में अनुशंसित है , release()
संसाधनों को मुक्त करने के लिए विधि को कॉल करना महत्वपूर्ण है जो अब उपयोग नहीं किया जाएगा। आमतौर पर, यह तब किया जाता है जब एक बार बजने वाली ध्वनि को बजाना पूरा कर लिया जाता है। ऐसा करने के लिए, हम OnCompletionListener
अपने जैसे को जोड़ते हैं mp
:
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//code
}
});
onCompletion
विधि के अंदर , हम इसे इस तरह जारी करते हैं:
public void onCompletion(MediaPlayer mp) {
mp.release();
}
स्पष्ट रूप से इसे लागू करने के बेहतर तरीके हैं । उदाहरण के लिए, आप MediaPlayer को एक वर्ग चर बना सकते हैं और इसके जीवनचक्र के साथ Fragment
या Activity
इसके उपयोग वाले जीवनचक्र को संभाल सकते हैं। हालाँकि, यह एक अन्य प्रश्न के लिए एक विषय है। इस उत्तर के दायरे को छोटा रखने के लिए, मैंने इसे केवल यह वर्णन करने के लिए लिखा था कि एंड्रॉइड में बटन क्लिक पर ध्वनि कैसे खेलें ।
मूल पोस्ट
प्रथम। आपको अपने बयानों को एक ब्लॉक के अंदर रखना चाहिए, और इस मामले में ऑनक्रिट विधि।
दूसरा। आपने बटन को वेरिएबल वन के रूप में इनिशियलाइज़ किया , फिर आपने वेरिएबल ज़ीरो का इस्तेमाल किया और उसके ऑनक्लिस्टनर को एक अधूरा ऑनक्लिक्लिस्टनर पर सेट किया। SetOnClickListener के लिए चर एक का उपयोग करें ।
तीसरा, ऑनक्लिक के अंदर ध्वनि को चलाने के लिए तर्क दें।
संक्षेप में:
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class BasicScreenActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_basic_screen);
Button one = (Button)this.findViewById(R.id.button1);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.soho);
one.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
mp.start();
}
});
}
}
MusicManager.getInstance().play(this, R.raw.my_sound);
। यदि हां, तो यह पुस्तकालय आपके लिए हो सकता है: github.com/delight-im/Android-Audio