Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Android-एंड्रॉइड पे एक संगीत चालक बनाएं: परियोजना तैयारी

by
Difficulty:BeginnerLength:LongLanguages:

Hindi (हिंदी) translation by Dee.P.Tree (you can also view the original English article)

Android Platform-एंड्रॉइड प्लेटफॉर्म media playback-मीडिया प्लेबैक-माहिती चालन को सँभालने के लिए संसाधन प्रदान करता है, जो यूजर-उपयोगकर्ता और संगीत की फाइल्स के बीच interface-इंटरफ़ेस-संबंध तैयार करने के लिए आपके Apps-एप्प्स-एप्लीकेशन्स उनको उपयोग में ले सकते हैं। इस ट्यूटोरियल-स्वशिक्षण श्रृंखला में, हम एंड्रॉइड के लिए एक सामान्य music player-म्यूजिक प्लेयर-संगीत चालक एप्लीकेशन बनाएँगे। यह एप्प उपयोगकर्ता के device-डिवाइस-उपकरण पे गीतों की सूचि दिखाएगा ताकि उपयोगकर्ता बजाने के लिए गाने चुन सके। यह एप्प प्लेबैक के साथ interaction-इंटरेक्शन-अन्योन्यक्रिया के लिए और जब प्लेबैक बंध हो जाए तब एक notification-नोटिफिकेशन-अधिसूचना दृश्यमान करने के साथ, जब उपयोगकर्ता एप्प सीधा उपयोग न कर रहे हो तब भी प्लेबैक चालू रहे इसके लिए controls-कंट्रोल्स-नियंत्रणों को दर्शाता है।

परिचय

म्यूजिक प्लेयर बनाना, उपकरण से गीतों को खोजने के लिए ContentResolver class-क्लास, audio-ऑडियो-श्रव्य बजाने के लिए MediaPlayer क्लास और प्लेबैक का नियंत्रण करने के लिए MediaController क्लास को शामिल करेगा। जब यूजर एप्प के साथ सीधा जुड़ा हुआ नही है-इंटरैक्ट नही कर रहा है तब ऑडियो बजाने के लिए हम Service instance-इंस्टैंस का भी प्रयोग करेंगे। अगर आप मध्यम क्षमता के एंड्रॉइड के developer-डेवलपर है तो यह श्रृंखला पूरी करने में सक्षम हो सकते है, इसलिए यदि आपने कुछ एप्प्स पहले से ही बना रखे है, तो यह श्रृंखला आपके लिए परेशानी नहीं होनी चाहिए। पूरा बन चूका हुआ एप्प का प्रीव्यू-पूर्वदर्शन ये रहा:

Android Music Player

यह ट्यूटोरियल में, हम एक एप्प बनाएँगे और उपयोगकर्ता के उपकरण को, ContentResolver और Cursor क्लास का प्रयोग करके, ऑडियो फाइल्स के लिए query-क्वेरी-जांच करेंगे। अगले विभाग में, हम गीतों को लिस्ट-सूची के स्वरुप में दिखाने, उपयोगकर्ता यह लिस्ट में से किसी भी गीत पे टैप-स्पर्श करें तब प्लेबैक चालू करने के लिए, एक Adapter इंस्टैंस का प्रयोग करेंगे। यह श्रृंखला की अंतिम कड़ी में, हम उपयोगकर्ता को प्लेबैक का नियंत्रण प्रदान करने के लिए, चालू गीत को त्याग कर आगे का या पीछे का गीत बजाने की सुविधा को लागू करने के लिए, और shuffle function-शफल फंक्शन-गीतों को मिश्रित करने के सुविधा को शामिल करने के लिए, MediaController क्लास का प्रयोग करेंगे। यह श्रृंखला के बाद, हम मीडिया प्लेबैक के दूसरे पहलुओं की जाँच करेंगे जो एप्प को और बेहतर बना सकते है, जैसे की ऑडियो फोकस-श्रव्य केन्द्रीकरण को संभालना, भिन्न तरीकों के मीडिया फाइल्स को प्रदर्शित करना, और streaming media-स्ट्रीमिंग मीडिया-प्रसारित माहिती को चलाना।

१. एक नया Project-प्रोजेक्ट-परियोजना बनाएं और उसको configure-कंफीगर करें-स्वरुप दें

चरण १

एक नया एंड्रॉइड प्रोजेक्ट बनाएं। अगर आप Eclipse-एक्लिप्स का प्रयोग कर रहे है, तो आपके लिए IDE-आईडीई (Integrated Development Environment-इंटीग्रेटेड डेवलोपमेन्ट एनवायरनमेंट) को मुख्य Activity क्लास और layout-लेआउट फाइल को बनाने दें। इस श्रृंखला में उपयोग में ले रहे कुछ कोड के लिए, आपको न्यूनतम API level-एपीआई लेवल १६ की जरुरत पड़ेगी, इसलिए आपको पुराने versions-वर्ज़न्स-संस्करणों के support-सपोर्ट-सुसंगतता के लिए अतिरिक्त कार्यवाही करनी पड़ेगी। आपका प्रोजेक्ट तैयार हो जाने के बाद, प्रोजेक्ट की Manifest-मेनिफेस्ट फाइल खोलें। manifest element-एलिमेंट के अंदर, निम्नलिखित permission-परमिशन-अनुमति लिखें:

जब यूजर का डिवाइस आइडल-निष्क्रिय हो जाता है तब म्यूजिक प्लेबैक चालू रखने के लिए हम ये परमिशन का उपयोग करेंगे। मुख्य Activity क्लास के लिए आपके मेनिफेस्ट में एक एलिमेंट पहले से ही होना चाहिए। screenOrientation और launchMode को स्थापित करने के लिए activity एलिमेंट में नीचे दिए गए हुए attribute-एट्रिब्यूट-गुण को शामिल करें:

हम सरलता हेतु portrait orientation-पोर्ट्रेट ओरिएंटेशन-छबि जैसे अभिविन्यास में लगे रहेंगे। एप्प से दूर होकर वापस उस में वापस आने की प्रक्रिया को launchmode मदद करेगा। हम हाल में बजता हुआ गीत को दिखाता हुआ नोटिफिकेशन दर्शाएंगे, नोटिफिकेशन के ऊपर tap-टैप-स्पर्श करने पर उपयोगकर्ता को एप्प में वापस ले जाएगा। म्यूजिक प्लेबैक के लिए हम Service क्लास का भी प्रयोग करेंगे। प्रोजेक्ट के मैनिफेस्ट में application एलिमेंट के अंदर और activity एलिमेंट के बाद में नीचे दी गई लाइन-पंक्ति शामिल करें।

आपके खुद की इच्छा के अनुरूप करने के लिए package name-पैकेज नेम-संकुल का नाम बदली करें और यदि आप चाहें तो क्लास का नाम बदलें।

चरण २

प्रोजेक्ट की मुख्य लेआउट फाइल को खोले और नीचे दिए गए लेआउट से उसके content-कंटेंट-अंतर्वस्तु को बदलें।

अगर आपके मुख्य Activity क्लास को अलग से नाम दिया गया है, तो सुनिश्चित करें की tools:context-टूल्स:कंटेस्ट एट्रिब्यूट को बदला हुआ हो। लेआउट में ListView शामिल है जिसमे हम गानों के लिस्ट को दिखाएंगे।

शफल फंक्शन को toggle-कार्यान्वित या अकार्यान्वित करने की सुविधा के लिए और ऐप्प में से बहार निकलने के लिए, हम दो menu item-मेन्यू आइटम-विकल्प सूचि वस्तु को शामिल करेंगे। आपकी मुख्य मेन्यू फाइल (res/menu/main.xml) को खोलें। और उसके कंटेंट-अंतर्वस्तु को निम्नलिखित से बदली करें:

अगर आप पसंद करते है तो आप title strings-टाइटल स्ट्रिंग्स-शीर्षक स्ट्रिंग्स को res/values/strings.xml फाइल में स्टोर-सुरक्षित कर सकते है। दो चीजें drawable-ड्रॉएबल फाइल्स को संदर्भित करती है। आगे बढ़ने के लिए आपकी खुद की बनाएं या इन दो तस्वीरों को उपयोग में ले:

Android Music Player Random Button
Android Music Player End Button

प्लेबैक नोटिफिकेशन में दिखाने के लिए हम एक icon-आइकॉन का भी प्रयोग करेंगे। एक नया बनाएं या नीचे दिए हुए को उपयोग में लें:

Android Music Player Play Button

यह कोड rand-रैंड, end-एंड और play-प्ले नामों का प्रयोग करके तस्वीरों को संदर्भित करेगा इसलिए सुनिश्चित करें कि आप वही फाइल नामों का प्रयोग करें। तस्वीरों को आप के प्रोजेक्ट के drawables folder(s)-ड्रॉएबल्स फोल्डर/फ़ोल्डरों में कॉपी करें। हम actions-एक्शन्स-क्रियाएं बाद में लागू करेंगे।

२. गीतों के लिए डिवाइस को क्वेरी करें-उपकरण की जांच करें

चरण १

चलिए, ऑडियो फाइल्स के लिए उपयोगकर्ता के उपकरण को क्वेरी करते है-उपकरण की जांच करते है। सौप्रथम, आप के प्रोजेक्ट में नया क्लास, Song नाम देते हुए, शामिल करें। हम इस क्लास को एक ऑडियो फाइल के लिए डेटा को मॉडल-माहिती को प्रयोग हेतु अनुरूप करने के लिए उपयोग करेंगे। क्लास declaration-डिक्लेरेशन-घोषणा में, हर गाने की वह माहिती जो हम स्टोर-सुरक्षित करना चाहते है उनके लिए तीन इंस्टैंस variables-वेरिएबल्स-प्राचल को शामिल करें।

उसके बाद, constructor method-कंस्ट्रक्टर मेथड शामिल करें जिसमे हम इंस्टैंस वेरिएबल्स instantiate-इंस्टैंशिएट करते है:

अंत में, इंस्टैंस वेरिएबल्स के लिए get मेथड्स को शामिल करें:

अगर आप गीत की ज्यादा माहिती का प्रयोग करना चाहते है, तो क्लास में अतिरिक्त इंस्टैंस वेरिएबल्स शामिल करने के लिए आप मुक्त है।

चरण २

मुख्य Activity क्लास को खोलें और उसमें निम्नलिखित imports-इम्पोर्ट्स-आयतों को शामिल करें:

onCreate मेथड से पहले नीचे दिए गए इंस्टैंस वेरिएबल्स को डिक्लेअर-घोषित करें:

हम गीतों को एक सूची में संचय-स्टोर करेंगे और उनको मुख्य लेआउट के ListView इंस्टैंस में दिखाएंगे। onCreate में, अंतर्वस्तु दृश्य-कंटेंट व्यू को सेट-स्थायी करने के बाद, ID-आई डी जो हमने मुख्य लेआउट में दिया था उसका, उपयोग करके ListView इंस्टैंस को रिट्रीव करें-वापस लाएं।

लिस्ट को नीचे दिखाया गया है वैसे इंस्टैंशिएट करें:

उसके बाद, मुख्य Activity क्लास डिक्लेरेशन में, मेथड्स से बहार निकल जाने के बाद, ऑडियो फाइल की माहिती निकालने के लिए एक helper-हेल्पर-मददनिष मेथड बनाएं:

इस मेथड में, ContentResolver इंस्टैंस बनाएं, URI-यु आर आई को बहार की संगीत फाइलों के लिए रिट्रीव-पून: प्राप्त करें, और संगीत फाइलों की क्वेरी-जाँच के लिए, Cursor इंस्टैंस को ContentResolver इंस्टैंस का उपयोग करके बनाएं:

अब हम परिणामों के ऊपर इटरेट-पुनरावर्तन कर सकते है, पहले जाँच करके कि हमारे पास मान्य data-डेटा-माहिती है:

पहले, हम हर गीत की माहिती जिसमे हमें रस है उनके column indexes-कॉलम इंडेक्सेस को रिट्रीव-पुनः प्राप्त करते है, उसके बाद हम एक नया Song object-ऑब्जेक्ट बनाने के लिए इनका प्रयोग करते है और, परिणामों में loop-लूप करना जारी रखने से पहले, उनको लिस्ट-सूचि में जोड़ते है:

onCreate में वापस, हमने शामिल किए हुए कोड के बाद, यह नई मेथड को call-कॉल करें:

३. गीतों को दर्शाएं

चरण १

अब हम यूजर इंटरफ़ेस में गीतों की सूचि को दिखा सकते है। onCreate मेथड में, थोड़ी क्षण पहले बनाई हुई हेल्पर मेथड को कॉल करने के बाद, आइए डेटा को sort-सॉर्ट-छांट लेते है ताकि गीतों को वर्णमाला के हिसाब से दिखाया जाएं।

Song क्लास में हम title वेरिएबल का प्रयोग करते है, हमने शामिल की हुई get मेथड का प्रयोग करके, compare मेथड को लागू करने के लिए, गीतों को शीर्षक से सॉर्ट-छांटने के लिए।

चरण २

सूचि के हर एक गाने को दिखाने के लिए, चलिए एक लेआउट को निश्चित करते है। आपके प्रोजेक्ट-परिकल्पना के res/layout फोल्डर में, song.xml नाम देते हुए, और निम्नलिखित दाखिल करते हुए, एक नई फाइल शामिल करें:

आपकी इच्छानुसार लेआउट को बेझिझक आगे बढ़ाएं। सूचि का हर एक गीत शीर्षक और कलाकार text string-टेक्स्ट स्ट्रिंग से दिखाया जाएगा, इसलिए हम TextViews को इस डेटा दिखाने के लिए उपयोग में लेंगे। ध्यान दें कि LinearLayout की प्रारंभिक tag-टैग सूचि में एक onClick एट्रिब्यूट का समावेश करता है। उपयोगकर्ता की सूचि में से गीतों पर टैप-हलके स्पर्श की प्रतिक्रिया देने के लिए, सूचि की वह वस्तु जिस पर टैप किया गया था उसको बजाते हुए, हम इस मेथड को मुख्य Activity क्लास में प्रयोग करेंगे।

चरण ३

हम लिस्ट व्यू-सूचि दर्शक से गीतों को map-मैप करने के लिए Adapter का उपयोग करेंगे। SongAdapter या अपनी पसंद का अन्य नाम देते हुए, आप की एप्प में नया क्लास शामिल करें। जब क्लास बना रहे है, तब उसको superclaas-सुपरक्लास android.widget.BaseAdapter दें। Eclipse-एक्लिप्स नीचे दी गई outline-आउटलाइन-रुपरेखा को insert-इन्सर्ट-शामिल करना चाहिए:

आपको नीचे दिए गए imports-इम्पोर्ट्स-आयातों को शामिल करना पड़ेगा:

क्लास डिक्लेरेशन में, निम्नलिखित इंस्टैंस वेरिएबल डिक्लेअर-घोषित  करें:

हम मुख्य Activity क्लास से गीतों की सूचि को pass-पास करेंगे-आगे बढ़ाएंगे और LayoutInflater का उपयोग, हमने बनाए हुए गीतों के लेआउट में, TextViews में शीर्षक और कलाकार strings-स्ट्रिंग्स को map-मैप करने के लिए, करेंगे।

इंस्टैंस वेरिएबल्स के बाद, उनको instantiate-इंस्टानशिएट करने के लिए, adapter-एडेप्टर को एक constructor-कंस्ट्रक्टर मेथड प्रदान करें:

getCount मेथड के कंटेंट-विषयवस्तु को, सूची की size-साइज-माप को return-रिटर्न करने के लिए, बदलें:

आप getItem और getItemId को वैसे के वैसे ही रख सकते है। getView मेथड के implimentation-इम्प्लीमेंटेशन-अमल को नीचे दिखाया है वैसे update-अपडेट-नवीनतम करें:

हम शीर्षक और कलाकार text-टेक्स्ट-लिखावट को, position index-पोजीशन इंडेक्स-स्थान संकेत का उपयोग करके, लिस्ट-सूचि में से सही Song इंस्टैंस रिट्रीव-पुनः प्राप्त करके, हमने गीत लेआउट फाइल में शामिल किए हुए views-व्यूज में ये strings-स्ट्रिंग्स को map-मैप करते हुए, set-सेट-स्थापित कर सकते है। हम view tag-व्यू टैग के तौर पर पोजीशन-स्थान स्थापित करते है,जो उपयोगकर्ता के सूचि की चीज़ पर क्लिक करने पर हमें सही गीत बजाने में सक्षम करता है। याद रखें कि song.xml लेआउट फाइल में onClick एट्रिब्यूट शामिल था। हम वहा पे सूचि बनाकर रखी हुई मेथड का Activity में टैग रिट्रीव करने के लिए प्रयोग में लेंगे।

चरण ३

मुख्य Activity क्लास में वापस आते हुए, onCreate मेथड में लिस्ट-सूचि को छानने के बाद, Adapter क्लास का नया इंस्टैंस बनाएं और उसको ListView पे स्थापित करें।

जब आप एप्प को चलाते हैं, तब वह उपकरण पे हाजिर गीतों की सूचि को दर्शाना चाहिए, उन पर क्लिक करना अभी एप्प exception-एक्सेप्शन-आपत्ति सामने लाए उसका का कारण बनेगा, लेकिन हम click handler-क्लिक हैंडलर अगले ट्यूटोरियल-स्वशिक्षण में लागु करेंगे।

समापन

अब हमने एप्प को उपयोगकर्ता के उपकरण से गानों को पढ़ने के लिए तैयार कर दिया है। अगले भाग में, जब उपयोगकर्ता MediaPlayer क्लास का प्रयोग करके एक गाना चुनता है तब हम चालन-प्लेबैक चालू करेंगे। हम प्लेबैक Service क्लास का उपयोग करके लागू करेंगे ताकि जब उपयोगकर्ता दूसरे एप्प्स के साथ संपर्क करता है तब वह चालू रहे। अंत में, उपयोगकर्ता को प्लेबैक के ऊपर नियंत्रण करने की सुविधा देने के लिए हम MediaController क्लास का प्रयोग करेंगे।

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.