Я реализовал QuickBlox для видеозвонков в Android, iOS и в Интернете.Но в андроиде я сталкиваюсь с одной проблемой, когда мы получаем видеозвонок, тогда динамик телефона не включается автоматически.Я хочу, чтобы динамик автоматически включался при получении видеовызова.
Мой пример кода для менеджера звука: -
audioManager = AppRTCAudioManager.create(this);
isVideoCall = QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO.equals(currentSession.getConferenceType());
if (isVideoCall) {
audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE);
Log.d(TAG, "AppRTCAudioManager.AudioDevice.SPEAKER_PHONE");
} else {
audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE);
audioManager.setManageSpeakerPhoneByProximity(SettingsUtil.isManageSpeakerPhoneByProximity(this));
Log.d(TAG, "AppRTCAudioManager.AudioDevice.EARPIECE");
}
audioManager.setOnWiredHeadsetStateListener((plugged, hasMicrophone) -> {
if (callStarted) {
Toaster.shortToast("Headset " + (plugged ? "plugged" : "unplugged"));
}
});
audioManager.setBluetoothAudioDeviceStateListener(connected -> {
if (callStarted) {
Toaster.shortToast("Bluetooth " + (connected ? "connected" : "disconnected"));
}
});
А когда я пытаюсь управлять менеджером потока звука, добавив нижестрок, то мое приложение падает
QBRTCAudioTrack localAudioTrack = currentSession.getMediaStreamManager().getLocalAudioTrack();
localAudioTrack.setEnabled(true); // enable or disable audio stream
Отчет о сбое:
java.lang.RuntimeException: Unable to start activity ComponentInfo{.quickblox_videocalling.activities.CallActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.quickblox.videochat.webrtc.QBRTCAudioTrack com.quickblox.videochat.webrtc.QBMediaStreamManager.getLocalAudioTrack()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.quickblox.videochat.webrtc.QBRTCAudioTrack com.quickblox.videochat.webrtc.QBMediaStreamManager.getLocalAudioTrack()' on a null object reference
at com.ahgp.quickblox_videocalling.activities.CallActivity.initAudioManager(CallActivity.java:396)
at com.ahgp.quickblox_videocalling.activities.CallActivity.onCreate(CallActivity.java:192)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
2019-05-17 13:06:08.148 11514-11514/com.ahgp E/UncaughtException: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ahgp/com.ahgp.quickblox_videocalling.activities.CallActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.quickblox.videochat.webrtc.QBRTCAudioTrack com.quickblox.videochat.webrtc.QBMediaStreamManager.getLocalAudioTrack()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.quickblox.videochat.webrtc.QBRTCAudioTrack com.quickblox.videochat.webrtc.QBMediaStreamManager.getLocalAudioTrack()' on a null object reference
at com.ahgp.quickblox_videocalling.activities.CallActivity.initAudioManager(CallActivity.java:396)
at com.ahgp.quickblox_videocalling.activities.CallActivity.onCreate(CallActivity.java:192)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)