0
我有一個問題讓MediaPlayer在BroadcastReceiver中工作。我想在高層做什麼,就是在Firebase發出通知之後x分鐘發出聲音和振動,就像第二次提醒一樣。 我具有延伸FirebaseMessagingService類,並在所述onMessageReceived()方法我所說的setOnetimeTimer(本)它是:BroadcastReceiver中的MediaPlayer不能在Android中工作
public void setOnetimeTimer(Context context) {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60 * 1), pi); // 1 minute
}
然後AlarmManagerBroadcastReceiver()是:
公共級AlarmManagerBroadcastReceiver擴展BroadcastReceiver {
MediaPlayer mp = null;
@Override
public void onReceive(Context context, Intent intent) {
if (mp != null) {
mp.stop();
mp.release();
mp = null;
}
mp = MediaPlayer.create(context, R.raw.my_weird_sound);
mp.start();
Vibrator vib = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(1000);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
}
沒有問題執行
振動,但聲音是不是在玩,而且我得到的錯誤是:
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
D/MediaPlayer: setSubtitleAnchor in MediaPlayer
記住也是我AlarmManagerBroadcastReceiver在我的清單。
任何幫助,將不勝感激!
在logcat中的信息保持不變,但現在它完美地工作。非常感謝您的快速回答! – AmadeusX
** D/MediaPlayer:MediaPlayer中的setSubtitleAnchor **當您不添加字幕到MediaPlayer時會發生此警告,您可以忽略此警告。 –