简体   繁体   English

Android 玩家不会停止

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM