簡體   English   中英

Android SIP未錄制語音

[英]Android SIP not recording speech

我在使用SIP android時遇到問題。 通話建立后,我什么也沒聽到。 我的代碼:

發起呼叫:

SipAudioCall.Listener listener = new SipAudioCall.Listener() {

            @Override
            public void onCallEstablished(SipAudioCall call) {
                RefreshView listener = new ConnectingNumberActivity();
                listener.refreshOnCallEstablished();
                call.startAudio();
                call.setSpeakerMode(true);
                if (call.isMuted()) {
                    call.toggleMute();
                }
            }

            @Override
            public void onCallEnded(SipAudioCall call) {
                stopRigtone();
                endCall();
            }
        };

        sipAudioCall = sipManager.makeAudioCall(sipProfile.getUriString(), sipAddress + "@" + domain , listener, 30);
        playRingtone("calling_tone.wav");
        sipAudioCall.toggleMute();

來電:

SipAudioCall.Listener listener = new SipAudioCall.Listener() {

            @Override
            public void onRinging(SipAudioCall call, SipProfile caller) {
                try {
                    call.answerCall(30);
                } catch (Exception e) {
                    Log.e(RINGING_ACTIVITY_TAG, e.toString());
                }
            }

            @Override
            public void onCallEnded(SipAudioCall call) {
                super.onCallEnded(call);
                closeIncomingCall();
                PhoneSipManager.stopRigtone();
                finish();
            }

            @Override
            public void onCallEstablished(SipAudioCall call) {
                super.onCallEstablished(call);

                try {
                    incomingCall.answerCall(30);
                    incomingCall.startAudio();
                    incomingCall.setSpeakerMode(true);
                    if (incomingCall.isMuted()) {
                        incomingCall.toggleMute();
                    }

                    PhoneSipManager.sipAudioCall = incomingCall;
                } catch (SipException e) {
                    e.printStackTrace();
                }

            }
        };

和單擊“答案”按鈕后調用的方法:

private void answerCall() {

    try {
        refreshView();
        incomingCall.answerCall(30);
        incomingCall.startAudio();
        incomingCall.setSpeakerMode(true);
        if (incomingCall.isMuted()) {
            incomingCall.toggleMute();
        }

        PhoneSipManager.sipAudioCall = incomingCall;

        Log.i(RINGING_ACTIVITY_TAG, "Ringing");
    } catch (Exception e) {
        Log.e(RINGING_ACTIVITY_TAG, e.toString());

        if (incomingCall != null) {
            incomingCall.close();
        }
    }
}

這段代碼基於Android的WalkieTalkie例子。 有人在第一個設備上錄制呼叫時遇到了相同的問題,而在另一個設備上卻聽不到任何聲音嗎?

您可能要檢查您的權限。 我遇到了類似的問題,但是當我設置以下權限和功能時它們消失了:

<uses-permission android:name="android.permission.USE_SIP" />
<uses-permission android:name="android.permission.CONFIGURE_SIP" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK"/> 

<uses-feature android:name="android.software.sip" android:required="true" />
<uses-feature android:name="android.software.sip.voip" android:required="true" />   
<uses-feature android:name="android.hardware.wifi" android:required="true" />
<uses-feature android:name="android.hardware.microphone" android:required="true" />

祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM