[英]Android player won't stop
I have call receiver, after first incoming call, ringtone playing as usual, but after second or more incoming calls sound does not stop playing.我有呼叫接收器,在第一次来电后,铃声会照常播放,但在第二次或更多次来电后声音不会停止播放。
here call receiver:-这里呼叫接收者:-
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();
}
}
}
}
I have static r, to stop r.play, on when call is end, but after calling again, I can hear two ringtones, and when I do end call, one ringtone stop play, but second continuous playing I do not understand why please help me我有static r,停止r.play,通话结束时打开,但再次拨打后,我可以听到两声铃声,当我结束通话时,铃声停止播放,但第二个继续播放我不明白为什么请帮我
If anyone will have same issue.如果有人有同样的问题。 you need just unregister receiver after end call or on reject.
您只需要在结束通话或拒绝后取消注册接收器。 this.unregisterReceiver(yourReceiver);
this.unregisterReceiver(yourReceiver);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.