दिलचस्प पोस्ट
एंड्रॉइड एकल टास्क या सिंगल इंस्टेंस लॉन्च मोड? वाक्यांशों के भीतर कीवर्ड गणना और हाइलाइट करें "एक्स एंड एंड एफू ()" क्या है? मेवेन बिल्ड में समानांतर में रनिंग जॉनीट टेस्ट? एंड्रॉइड छवि देखें पिंच ज़ूमिंग स्विच / पैटर्न मिलान विचार क्या नियमित अभिव्यक्ति वैध अंतरराष्ट्रीय फ़ोन नंबरों से मेल खाएगी? सीएसएस: अस्पष्टता के साथ पृष्ठभूमि छवि सेट? मेरी छवि के नीचे स्थान क्यों है? पीआईपी के साथ विशिष्ट पैकेज संस्करणों को स्थापित करना बहुरूपता का वर्णन करने की कोशिश करें जितना आसान हो सकता है कैसे / जब ग्रेडल आवरण फाइलें उत्पन्न करने के लिए? स्क्रीन चौड़ाई और ऊंचाई प्राप्त करें क्या git द्विआधारी अंतर एल्गोरिदम (डेल्टा स्टोरेज) मानकीकृत है? मैं एक jQuery काउंटडाउन कैसे बना सकता हूँ

Android में रिंगटोन / अलार्म ध्वनि कैसे खेलें

एंड्रॉइड में मैं रिंगटोन / अलार्म ध्वनि कैसे खेलूं?

मैं एक बटन दबाता हूं और मैं एक रिंगटोन / अलार्म ध्वनि खेलना चाहता हूं। मैं एक आसान, सरल नमूना नहीं मिल सका हां, मैंने अलार्म घड़ी स्रोत कोड पर पहले से ही देखा है … लेकिन यह सीधा नहीं है और मैं इसे संकलित नहीं कर सकता।

मैं यह काम नहीं कर सकता:

Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); mMediaPlayer = new MediaPlayer(); mMediaPlayer.setDataSource(this, alert); final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { player.setAudioStreamType(AudioManager.STREAM_ALARM); player.setLooping(true); player.prepare(); player.start(); } 

मुझे यह त्रुटि मिलती है:

 04-11 17:15:27.638: ERROR/MediaPlayerService(30): Couldn't open fd for content://settings/system/ringtone 

तो .. कृपया अगर कोई जानता है कि कोई डिफ़ॉल्ट रिंगटोन कैसे खेलता है / अलार्म मुझे बताएं

मैं किसी फ़ाइल को अपलोड नहीं करना चाहता। बस एक डिफ़ॉल्ट रिंगटोन खेलते हैं

वेब के समाधान से एकत्रित समाधान "Android में रिंगटोन / अलार्म ध्वनि कैसे खेलें"

आप इस के साथ एक सेटिंग रिंगटोन खेल सकते हैं:

 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); r.play(); 

अगर किसी उपयोगकर्ता ने कभी भी अपने फ़ोन पर कोई अलार्म नहीं लगाया है, तो TYPE_ALARM शून्य हो सकता है। आप इस के साथ खाते कर सकते हैं:

 Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); if(alert == null){ // alert is null, using backup alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // I can't see this ever being null (as always have a default notification) // but just incase if(alert == null) { // alert backup is null, using 2nd backup alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); } } 

यह मैंने जिस तरह से किया है:

 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); MediaPlayer mp = MediaPlayer.create(getApplicationContext(), notification); mp.start(); 

यह मार्कोव 400 के रास्ते के समान है, लेकिन रिंगटोन के बजाय मीडियाप्लेयर का उपयोग करता है जो अन्य ध्वनियों को बाधित करने से रोकता है, जैसे कि संगीत, जो पहले से ही पृष्ठभूमि में खेल रहा हो।

आपका उदाहरण मूल रूप से है जिसका मैं उपयोग कर रहा हूं। हालांकि यह एमुलेटर पर कभी काम नहीं करता है, क्योंकि एमुलेटर के पास डिफ़ॉल्ट रूप से कोई रिंगटोन नहीं होता है, और content://settings/system/ringtone कुछ भी खेलने योग्य नहीं हल करता है। यह मेरे वास्तविक फोन पर ठीक काम करता है

आप अपने / एसडीसीडी फ़ोल्डर में डीडीएमएस का उपयोग कर एमडीओ फ़ाइल को पुश कर सकते हैं, एमुलेटर को पुनः आरंभ कर सकते हैं, फिर मीडिया एप्लिकेशन खोल सकते हैं, अपनी एमपी 3 फाइल को ब्राउज़ कर सकते हैं, उस पर लंबे समय से प्रेस करें और "फोन रिंगटोन के रूप में उपयोग करें" का चयन करें।

त्रुटि चली गई!

संपादित करें: नोटिफिकेशन ध्वनियों के साथ एक ही परेशानी (उदा। एसएमएस के लिए) रिंगडाइड एप्लिकेशन का उपयोग करके हल किया गया

यह ठीक काम करता है:

 AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); MediaPlayer thePlayer = MediaPlayer.create(getApplicationContext(), RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); try { thePlayer.setVolume((float) (audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION) / 7.0)), (float) (audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION) / 7.0))); } catch (Exception e) { e.printStackTrace(); } thePlayer.start(); 

एक ऑडियो फ़ाइल को एमुलेटर के एसडी कार्ड में कॉपी करना और इसे मीडिया प्लेयर के माध्यम से चुनना क्योंकि डिफ़ॉल्ट रिंगटोन वास्तव में समस्या को हल करता है।

आप इस नमूना कोड का उपयोग कर सकते हैं:

 Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); Ringtone ringtoneSound = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri) if (ringtoneSound != null) { ringtoneSound.play(); } 
 public class AlarmReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { //this will update the UI with message Reminder inst = Reminder.instance(); inst.setAlarmText(""); //this will sound the alarm tone //this will sound the alarm once, if you wish to //raise alarm in loop continuously then use MediaPlayer and setLooping(true) Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); if (alarmUri == null) { alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); } Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri); ringtone.play(); //this will send a notification message ComponentName comp = new ComponentName(context.getPackageName(), AlarmService.class.getName()); startWakefulService(context, (intent.setComponent(comp))); setResultCode(Activity.RESULT_OK); } } 

भविष्य के Googlers के लिए: RingtoneManager.getActualDefaultRingtoneUri() बजाय RingtoneManager.getActualDefaultRingtoneUri() उपयोग करें इसके नाम के अनुसार, यह वास्तविक उड़ी वापस करेगा, ताकि आप इसे स्वतंत्र रूप से उपयोग कर सकें। getActualDefaultRingtoneUri() दस्तावेज़ीकरण से:

वर्तमान डिफ़ॉल्ट ध्वनि की उरी मिलती है इससे वास्तविक ध्वनि उरी को यह प्रयोग करने के बजाय, अधिकतर ग्राहक DEFAULT_RINGTONE_URI का उपयोग कर सकते हैं।

इस बीच getDefaultUri() यह कहते हैं:

एक विशिष्ट प्रकार के डिफ़ॉल्ट रिंगटोन के लिए उरी लौटाता है वास्तविक रिंगटोन की ध्वनि उरी लौटने के बजाय, यह प्रतीकात्मक उरी वापस लौटाएगा, जो कि खेला जानेवाले वास्तविक ध्वनि के लिए हल हो जाएंगे।

यहां कुछ नमूना कोड है:

 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), notification); mediaPlayer.start();