|
@@ -133,22 +133,15 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
mCallback.joinRoomSucc();
|
|
mCallback.joinRoomSucc();
|
|
}
|
|
}
|
|
|
|
|
|
- /*if (isHeadphonesPlugged()) {
|
|
|
|
|
|
+ if (isHeadphonesPlugged()) {
|
|
toggleHeadset(true);
|
|
toggleHeadset(true);
|
|
} else {
|
|
} else {
|
|
- if (mIsAudioOnly)
|
|
|
|
- toggleSpeaker(false);
|
|
|
|
- else {
|
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
- audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
|
|
- } else {
|
|
|
|
- audioManager.setMode(AudioManager.MODE_IN_CALL);
|
|
|
|
- }
|
|
|
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
|
|
+ audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
|
|
+ } else {
|
|
|
|
+ audioManager.setMode(AudioManager.MODE_IN_CALL);
|
|
}
|
|
}
|
|
- }*/
|
|
|
|
-
|
|
|
|
- toggleSpeaker(true);
|
|
|
|
- audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -375,6 +368,23 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
return isBluetoothHeadsetConnected;
|
|
return isBluetoothHeadsetConnected;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public void toggleBluetooth(){
|
|
|
|
+ if (audioManager != null) {
|
|
|
|
+ audioManager.setStreamVolume(
|
|
|
|
+ AudioManager.STREAM_MUSIC,
|
|
|
|
+ audioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
|
|
|
|
+ AudioManager.FX_KEY_CLICK
|
|
|
|
+ );
|
|
|
|
+ audioManager.setSpeakerphoneOn(false);
|
|
|
|
+
|
|
|
|
+ audioManager.startBluetoothSco();
|
|
|
|
+ audioManager.setBluetoothScoOn(true);
|
|
|
|
+
|
|
|
|
+ audioFocusManager = new AudioFocusManager(audioManager);
|
|
|
|
+ audioFocusManager.requestFocus();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
AudioFocusManager audioFocusManager;
|
|
AudioFocusManager audioFocusManager;
|
|
@Override
|
|
@Override
|
|
public boolean toggleSpeaker(boolean enable) {
|
|
public boolean toggleSpeaker(boolean enable) {
|
|
@@ -384,7 +394,7 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
if (audioToBluetoothDevice()){
|
|
if (audioToBluetoothDevice()){
|
|
audioManager.setStreamVolume(
|
|
audioManager.setStreamVolume(
|
|
AudioManager.STREAM_MUSIC,
|
|
AudioManager.STREAM_MUSIC,
|
|
- audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
|
|
+ audioManager.getStreamVolume(AudioManager.STREAM_MUSIC),
|
|
AudioManager.FX_KEY_CLICK
|
|
AudioManager.FX_KEY_CLICK
|
|
);
|
|
);
|
|
audioManager.setSpeakerphoneOn(false);
|
|
audioManager.setSpeakerphoneOn(false);
|
|
@@ -396,8 +406,8 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
audioFocusManager.requestFocus();
|
|
audioFocusManager.requestFocus();
|
|
} else {
|
|
} else {
|
|
if (enable) {
|
|
if (enable) {
|
|
- audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
|
|
|
|
- audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
|
|
|
|
|
|
+ audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
|
|
|
|
+ audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
|
|
AudioManager.FX_KEY_CLICK);
|
|
AudioManager.FX_KEY_CLICK);
|
|
audioManager.setSpeakerphoneOn(true);
|
|
audioManager.setSpeakerphoneOn(true);
|
|
} else {
|
|
} else {
|
|
@@ -411,8 +421,8 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
}
|
|
}
|
|
//设置音量,解决有些机型切换后没声音或者声音突然变大的问题
|
|
//设置音量,解决有些机型切换后没声音或者声音突然变大的问题
|
|
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);
|
|
@@ -446,7 +456,7 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- private boolean isHeadphonesPlugged() {
|
|
|
|
|
|
+ public boolean isHeadphonesPlugged() {
|
|
if (audioManager == null) {
|
|
if (audioManager == null) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
@@ -468,6 +478,13 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
public void release() {
|
|
public void release() {
|
|
if (audioManager != null) {
|
|
if (audioManager != null) {
|
|
audioManager.setMode(AudioManager.MODE_NORMAL);
|
|
audioManager.setMode(AudioManager.MODE_NORMAL);
|
|
|
|
+
|
|
|
|
+ if (audioToBluetoothDevice()) {
|
|
|
|
+ audioManager.stopBluetoothSco();
|
|
|
|
+ audioManager.setBluetoothScoOn(false);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (audioFocusManager!=null){
|
|
audioFocusManager.releaseAudioFocus();
|
|
audioFocusManager.releaseAudioFocus();
|
|
}
|
|
}
|
|
// 清空peer
|
|
// 清空peer
|
|
@@ -496,28 +513,6 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------其他方法--------------------------------
|
|
// -----------------------------其他方法--------------------------------
|
|
-
|
|
|
|
-// private void initIceServer() {
|
|
|
|
-// // 初始化一些stun和turn的地址
|
|
|
|
-// PeerConnection.IceServer var1 = PeerConnection.IceServer.builder("stun:stun.l.google.com:19302")
|
|
|
|
-// .createIceServer();
|
|
|
|
-// iceServers.add(var1);
|
|
|
|
-//
|
|
|
|
-// PeerConnection.IceServer var11 = PeerConnection.IceServer.builder("stun:172.28.100.100:3478?transport=udp")
|
|
|
|
-// .createIceServer();
|
|
|
|
-// PeerConnection.IceServer var12 = PeerConnection.IceServer.builder("turn:172.28.100.100:3478?transport=udp")
|
|
|
|
-// .setUsername("ddssingsong")
|
|
|
|
-// .setPassword("123456")
|
|
|
|
-// .createIceServer();
|
|
|
|
-// PeerConnection.IceServer var13 = PeerConnection.IceServer.builder("turn:172.28.100.100:3478?transport=tcp")
|
|
|
|
-// .setUsername("ddssingsong")
|
|
|
|
-// .setPassword("123456")
|
|
|
|
-// .createIceServer();
|
|
|
|
-// iceServers.add(var11);
|
|
|
|
-// iceServers.add(var12);
|
|
|
|
-// iceServers.add(var13);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
private void initIceServer() {
|
|
private void initIceServer() {
|
|
// 初始化一些stun和turn的地址
|
|
// 初始化一些stun和turn的地址
|
|
// PeerConnection.IceServer var1 = PeerConnection.IceServer.builder("stun:stun.l.google.com:19302")
|
|
// PeerConnection.IceServer var1 = PeerConnection.IceServer.builder("stun:stun.l.google.com:19302")
|