मैं एक एंड्रॉइड अलार्म एप्लिकेशन लिख रहा हूं जो अलार्म टोन खेलने के लिए सेवा का उपयोग करता है। वर्तमान में, मैं ऑडियो खेलने के लिए सक्षम हूं, लेकिन यह एक ऐसे रूप में चलता है जिसे डिवाइस की मात्रा को बंद करके म्यूट किया जा सकता है। इस प्रकार, मैं इसे रोकने के लिए setAudioStreamType(AudioManager.STREAM_ALARM);
पर कॉल जोड़ने का प्रयास कर रहा हूं।(एंड्रॉइड मीडियाप्लेयर) अगर मैं MediaPlayer.create() को स्पष्ट रूप से कॉल() को कॉल करता हूं तो मुझे setAudioStreamType() को कॉल करने के लिए कैसे कहा जाता है?
मैं सेवा के लिए मेरे onStartCommand()
समारोह के लिए निम्नलिखित है:
MediaPlayer mMP;
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
try
{
mMP = MediaPlayer.create(this, R.raw.alarm);
mMP.setAudioStreamType(AudioManager.STREAM_ALARM);
mMP.setLooping(true);
//mMP.prepare(); commented out since prepare() is called in create
}
catch (Exception e)
{
e.printStackTrace();
}
if (mMP != null) mMP.start();
return START_STICKY;
}
मेरे समस्या यह है कि setAudioStreamType करने के लिए कॉल() के साथ, MediaPlayer कभी नहीं ऑडियो खेलता है। अगर मैं उस लाइन को टिप्पणी करता हूं, तो ऑडियो बजाता है।
04-10 19: 32: ०३.११५: ई/MediaPlayer (3411): setAudioStream राज्य में कहा जाता है 8
में, मैं निम्नलिखित रनटाइम त्रुटि (रों) मिल लाइन के साथ04-10 19: 32: ०३.११५: ई/MediaPlayer (3411): त्रुटि (-38, 0)
04-10 19: 32: ०३.११५: ई/MediaPlayer (3411): राज्य में बुलाया शुरू 0
04-10 1 9: 32: 03.115: ई/मीडियाप्लेयर (3411): त्रुटि (-38, 0)
04-10 19: 32: ०३.११५: ई/MediaPlayer (3411): त्रुटि (-38,0)
04-10 19: 32: ०३.११५: ई/MediaPlayer (3411): त्रुटि (- 38,0)
कुछ शोध (मैं अब लिंक नहीं मिल) ने मुझे बताया कि setAudioStreamType()
के बाद prepare()
बुलाया गया है नहीं कहा जा सकता, और create()
परोक्ष कॉल prepare()
कि।
किसी भी संबंध में, मुझे इस तरह की त्रुटि के बिना setAudioStreamType()
कैसे माना जाता है?
काम कर रहा है ऐसा लगता है कि आप इन पंक्तियों के साथ कुछ सुझाव दे रहे हैं जैसे ('(बनाने) को' कॉल के बाद शुरू): '' setAudioStreamType(); '' setLooping(); 'रीसेट()' 'तैयार();' क्या मैं सही हूँ? यदि ऐसा है, तो मुझे कॉल करने के लिए कॉल पर निम्न त्रुटि मिलती है: '04-10 20: 06: 25.515: ई/मीडियाप्लेयर (845): राज्य 1' ' 04-10 20: 06: 25.515: ई/मीडियाप्लेयर (845): त्रुटि (-38, 0) ' – finiteloop
ऐसा लगता है कि आपको 'प्रारंभ()' वास्तव में, 'तैयार()' नहीं, कॉल पर त्रुटि मिल रही है। क्या आप अपना अद्यतन कोड प्रश्न में जोड़ सकते हैं? – kcoppock
आप सही हैं, कॉल शुरू होने के बाद विशेष त्रुटि उत्पन्न हुई थी, कॉल करने में भी एक त्रुटि है कि जब मैं अपनी टिप्पणी पोस्ट कर रहा था तो लॉग में चूक गया। '04-10 21: 42: 11.8 9 6: ई/मीडियाप्लेयर (5 9 3): तैयार एसिंक राज्य 1' में बुलाया गया। – finiteloop