दिलचस्प पोस्ट
एक कन्स्ट्रक्टर का उपयोग कब करना और getInstance () विधि (स्थिर कारखाने के तरीकों) का उपयोग करने के लिए? जावा लॉगिंग एपीआई का उपयोग करते समय मैं डिफ़ॉल्ट कंसोल हैंडलर को कैसे निष्क्रिय कर सकता हूं? बाहरी संग्रहण से बिटमैप लोड करते समय आउटऑफिममी अपवाद दिए गए दो तारों की दूरी समानता माप की गणना कैसे करें? Std :: vector और std :: arrays के लिए C ++ initializer_list व्यवहार क्यों भिन्न है? हैशमैप में प्रविष्टि ऑर्डर कैसे सुरक्षित रखना है? वहाँ एक सी # मामला असंवेदनशील ऑपरेटर के बराबर है? PHP विस्फोट के बराबर जावास्क्रिप्ट () सॉकेट प्रोग्रामिंग में AF_INET और PF_INET के बीच अंतर क्या है? तिथियों की एक श्रेणी के बीच तिथियां प्राप्त करना जावा में शट डाउन हुक का उपयोगी उदाहरण? मैं स्वत: पूर्ण पाठ का प्रयोग कैसे कर सकता हूं और इसे वेब एपीआई से डेटा के साथ जनरेट कर सकता हूं? DataGridView पंक्ति शीर्षलेख में टेक्स्ट जोड़ना स्ट्रिंग को सी में दो में परिवर्तित करना # गतिविधियों के बीच डेटा साझा करने का सबसे अच्छा तरीका क्या है?

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();