|
@@ -2,6 +2,8 @@ package com.wdkl.skywebrtc.engine.webrtc;
|
|
|
|
|
|
import android.annotation.TargetApi;
|
|
import android.annotation.TargetApi;
|
|
import android.app.Activity;
|
|
import android.app.Activity;
|
|
|
|
+import android.bluetooth.BluetoothAdapter;
|
|
|
|
+import android.bluetooth.BluetoothHeadset;
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
import android.media.AudioDeviceInfo;
|
|
import android.media.AudioDeviceInfo;
|
|
@@ -193,8 +195,6 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
peer.setRemoteDescription(sdp);
|
|
peer.setRemoteDescription(sdp);
|
|
peer.createAnswer();
|
|
peer.createAnswer();
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -205,8 +205,6 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
SessionDescription sessionDescription = new SessionDescription(SessionDescription.Type.ANSWER, sdp);
|
|
SessionDescription sessionDescription = new SessionDescription(SessionDescription.Type.ANSWER, sdp);
|
|
peer.setRemoteDescription(sessionDescription);
|
|
peer.setRemoteDescription(sessionDescription);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -240,8 +238,6 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
peers.clear();
|
|
peers.clear();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -305,15 +301,12 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void startStream() {
|
|
public void startStream() {
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void stopStream() {
|
|
public void stopStream() {
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public View setupRemoteVideo(String userId, boolean isO) {
|
|
public View setupRemoteVideo(String userId, boolean isO) {
|
|
if (TextUtils.isEmpty(userId)) {
|
|
if (TextUtils.isEmpty(userId)) {
|
|
@@ -328,7 +321,6 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
}
|
|
}
|
|
|
|
|
|
return peer.renderer;
|
|
return peer.renderer;
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -374,32 +366,52 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public boolean audioToBluetoothDevice(){
|
|
|
|
+ BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
|
|
|
+ boolean isBluetoothHeadsetConnected = (bluetoothAdapter != null && bluetoothAdapter.isEnabled()
|
|
|
|
+ && bluetoothAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == BluetoothHeadset.STATE_CONNECTED);
|
|
|
|
+
|
|
|
|
+ return isBluetoothHeadsetConnected;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public boolean toggleSpeaker(boolean enable) {
|
|
public boolean toggleSpeaker(boolean enable) {
|
|
if (audioManager != null) {
|
|
if (audioManager != null) {
|
|
isSpeakerOn = enable;
|
|
isSpeakerOn = enable;
|
|
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
- if (enable) {
|
|
|
|
- audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
|
|
|
|
- audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
- AudioManager.FX_KEY_CLICK);
|
|
|
|
- audioManager.setSpeakerphoneOn(true);
|
|
|
|
- } else {
|
|
|
|
- //5.0以上
|
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
- //设置mode
|
|
|
|
- audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
|
|
- } else {
|
|
|
|
- //设置mode
|
|
|
|
- audioManager.setMode(AudioManager.MODE_IN_CALL);
|
|
|
|
- }
|
|
|
|
- //设置音量,解决有些机型切换后没声音或者声音突然变大的问题
|
|
|
|
|
|
+ if (audioToBluetoothDevice()){
|
|
audioManager.setStreamVolume(
|
|
audioManager.setStreamVolume(
|
|
- AudioManager.STREAM_VOICE_CALL,
|
|
|
|
- audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
|
|
+ AudioManager.STREAM_MUSIC,
|
|
|
|
+ audioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
|
|
AudioManager.FX_KEY_CLICK
|
|
AudioManager.FX_KEY_CLICK
|
|
);
|
|
);
|
|
audioManager.setSpeakerphoneOn(false);
|
|
audioManager.setSpeakerphoneOn(false);
|
|
|
|
+
|
|
|
|
+ audioManager.startBluetoothSco();
|
|
|
|
+ audioManager.setBluetoothScoOn(true);
|
|
|
|
+ } else {
|
|
|
|
+ if (enable) {
|
|
|
|
+ audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
|
|
|
|
+ audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
+ AudioManager.FX_KEY_CLICK);
|
|
|
|
+ audioManager.setSpeakerphoneOn(true);
|
|
|
|
+ } else {
|
|
|
|
+ //5.0以上
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
+ //设置mode
|
|
|
|
+ audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
|
|
+ } else {
|
|
|
|
+ //设置mode
|
|
|
|
+ audioManager.setMode(AudioManager.MODE_IN_CALL);
|
|
|
|
+ }
|
|
|
|
+ //设置音量,解决有些机型切换后没声音或者声音突然变大的问题
|
|
|
|
+ audioManager.setStreamVolume(
|
|
|
|
+ AudioManager.STREAM_VOICE_CALL,
|
|
|
|
+ audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
+ AudioManager.FX_KEY_CLICK
|
|
|
|
+ );
|
|
|
|
+ audioManager.setSpeakerphoneOn(false);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|