[英]Android player won't stop
我有呼叫接收器,在第一次來電后,鈴聲會照常播放,但在第二次或更多次來電后聲音不會停止播放。
這里呼叫接收者:-
public class IncomingCallReceiver extends BroadcastReceiver {
/**
* Processes the incoming call, answers it, and hands it over to the
* WalkieTalkieActivity.
*
* @param context The context under which the receiver is running.
* @param intent The intent being received.
*/
WalkieTalkieActivity wtActivity;
public SipAudioCall.Listener listener;
public SipAudioCall incomingCall = null;
public static Ringtone r;
public int state = 0;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onReceive(Context context, Intent intent) {
wtActivity = (WalkieTalkieActivity) context;
try {
incomingCall = wtActivity.manager.takeAudioCall(intent, listener);
if (incomingCall.getState() == 3) {
state = 1;
Log.e("BUTTON", "Incoming Call here" + wtActivity.manager);
wtActivity.updateStatus("INCOMING CALL " + incomingCall.getState());
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
r = RingtoneManager.getRingtone(context, uri);
audioManager.setStreamVolume(AudioManager.STREAM_RING, maxVolume / 2, AudioManager.FLAG_PLAY_SOUND);
r.play();
wtActivity.setContentView(R.layout.incomig_call);
Log.e("peer profile", incomingCall.getPeerProfile().toString());
}
} catch (Exception e) {
if (incomingCall != null) {
incomingCall.close();
}
}
}
}
我有static r,停止r.play,通話結束時打開,但再次撥打后,我可以聽到兩聲鈴聲,當我結束通話時,鈴聲停止播放,但第二個繼續播放我不明白為什么請幫我
如果有人有同樣的問題。 您只需要在結束通話或拒絕后取消注冊接收器。 this.unregisterReceiver(yourReceiver);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.