Alarm tonunu çalmak için bir Servis kullanan bir Android alarm uygulaması yazıyorum. Şu anda, çalınacak sesi alabiliyorum, ancak cihazın sesini kısarak susturulabilecek bir formda çalıyor. Bu nedenle, bunu önlemek için setAudioStreamType(AudioManager.STREAM_ALARM);
numaralı telefona bir arama eklemeye çalışıyorum.(Android MediaPlayer) MediaPlayer.create() implicitly prepare() çağırırsa setAudioStreamType() nasıl çağırmalıyım?
Ben hizmet için benim onStartCommand()
fonksiyonu için aşağıdaki vardır:
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;
}
Benim sorunum setAudioStreamType() çağrısı ile, MediaPlayer asla ses oynuyor. Bu çizgiyi yorumlarsam, ses çalar.
04-10 19: 32: 03,115 E/MediaPlayer (3411): halde adı setAudioStream 8
, aşağıdaki çalışma zamanı hatası (ler) elde hattı ile
04-10 19: 32: 03,115 E/MediaPlayer (3411): hata (-38, 0)
04-10 19: 32: 03,115 E/MediaPlayer (3411): halde adı başlar 0
04-10 19: 32: 03.115: E/MediaPlayer (3411): error (-38, 0)
04-10 19: 32: 03,115 E/MediaPlayer (3411): Hata (-38,0)
04-10 19: 32: 03,115 E/MediaPlayer (3411): Hata (- 38,0)
Bazı araştırmalar (şimdi linki bulamıyorum) setAudioStreamType()
prepare()
çağrıldıktan sonra denir ve create()
örtük prepare()
çağırır edilemez olduğunu söyledi.
Herhangi bir bakımdan, böyle bir hata olmadan nasıl setAudioStreamType()
yapmalıyım?
çalışıyor (') (oluşturmak' çağrısının başlayarak):; '' setAudioStreamType(); '' setLooping(); ') (reset' Hazırla(); Doğru muyum? Eğer öyleyse, hazırlanmak için çağrıda şu hatayı alıyorum: '04-10 20: 06: 25.515: E/MediaPlayer (845): durum 1 'den başlamaya başlayın' ' 04-10 20: 06: 25.515: E/MediaPlayer (845): error (-38, 0) ' – finiteloop
'begin()' aslında, hazırlamama() 'deyimini çağırıyorsunuz gibi görünüyor. Güncellenmiş kodunuzu soruya ekleyebilir misiniz? – kcoppock
Haklısınız, çağrı başlatıldıktan sonra o belirli bir hata ortaya çıktı, ayrıca benim yorumumu gönderdiğimde günlüğümü kaçırdığım için hazırladığım bir hata da var. 04-10 21: 42: 11.896: E/MediaPlayer (593): readyAsync durumu 1 'olarak adlandırılır. – finiteloop