[*] 安卓消费媒体
This commit is contained in:
@@ -2,34 +2,34 @@
|
|||||||
|
|
||||||
## WebRTC资料
|
## WebRTC资料
|
||||||
|
|
||||||
https://www.cnblogs.com/ssyfj/p/14828185.html
|
* https://www.cnblogs.com/ssyfj/p/14828185.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14826516.html
|
* https://www.cnblogs.com/ssyfj/p/14826516.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14823861.html
|
* https://www.cnblogs.com/ssyfj/p/14823861.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14815266.html
|
* https://www.cnblogs.com/ssyfj/p/14815266.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14811253.html
|
* https://www.cnblogs.com/ssyfj/p/14811253.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14806678.html
|
* https://www.cnblogs.com/ssyfj/p/14806678.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14805040.html
|
* https://www.cnblogs.com/ssyfj/p/14805040.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14788663.html
|
* https://www.cnblogs.com/ssyfj/p/14788663.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14787012.html
|
* https://www.cnblogs.com/ssyfj/p/14787012.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14783168.html
|
* https://www.cnblogs.com/ssyfj/p/14783168.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14781982.html
|
* https://www.cnblogs.com/ssyfj/p/14781982.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14778839.html
|
* https://www.cnblogs.com/ssyfj/p/14778839.html
|
||||||
|
|
||||||
## Mediasoup资料
|
## Mediasoup资料
|
||||||
|
|
||||||
https://www.cnblogs.com/ssyfj/p/14855454.html
|
* https://www.cnblogs.com/ssyfj/p/14855454.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14851442.html
|
* https://www.cnblogs.com/ssyfj/p/14851442.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14850041.html
|
* https://www.cnblogs.com/ssyfj/p/14850041.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14847097.html
|
* https://www.cnblogs.com/ssyfj/p/14847097.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14843182.html
|
* https://www.cnblogs.com/ssyfj/p/14843182.html
|
||||||
https://www.cnblogs.com/ssyfj/p/14843082.html
|
* https://www.cnblogs.com/ssyfj/p/14843082.html
|
||||||
|
|
||||||
## 更多资料
|
## 更多资料
|
||||||
|
|
||||||
https://zhuanlan.zhihu.com/p/466172240
|
* https://zhuanlan.zhihu.com/p/466172240
|
||||||
http://koca.szkingdom.com/forum/t/topic/218
|
* http://koca.szkingdom.com/forum/t/topic/218
|
||||||
https://blog.csdn.net/qw225967/article/details/121251305
|
* https://blog.csdn.net/qw225967/article/details/121251305
|
||||||
http://www.manoner.com/post/音视频基础/WebRTC核心组件和协议栈/
|
* http://www.manoner.com/post/音视频基础/WebRTC核心组件和协议栈/
|
||||||
https://blog.csdn.net/ababab12345/article/details/115585378
|
* https://blog.csdn.net/ababab12345/article/details/115585378
|
||||||
https://blog.csdn.net/jisuanji111111/article/details/121634199
|
* https://blog.csdn.net/jisuanji111111/article/details/121634199
|
||||||
https://lequ7.com/guan-yu-webrtc-yi-wen-xiang-jie-webrtc-ji-chu.html
|
* https://lequ7.com/guan-yu-webrtc-yi-wen-xiang-jie-webrtc-ji-chu.html
|
||||||
|
|||||||
@@ -721,14 +721,14 @@ public final class MediaManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCapturerStarted(boolean status) {
|
public void onCapturerStarted(boolean status) {
|
||||||
Log.i(MediaManager.class.getSimpleName(), "结束视频捕获");
|
Log.i(MediaManager.class.getSimpleName(), "开始视频捕获");
|
||||||
this.mainObserver.onCapturerStarted(status);
|
this.mainObserver.onCapturerStarted(status);
|
||||||
this.shareObserver.onCapturerStarted(status);
|
this.shareObserver.onCapturerStarted(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCapturerStopped() {
|
public void onCapturerStopped() {
|
||||||
Log.i(MediaManager.class.getSimpleName(), "开始视频捕获");
|
Log.i(MediaManager.class.getSimpleName(), "结束视频捕获");
|
||||||
this.mainObserver.onCapturerStopped();
|
this.mainObserver.onCapturerStopped();
|
||||||
this.shareObserver.onCapturerStopped();
|
this.shareObserver.onCapturerStopped();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,11 +52,10 @@ public class Room extends CloseableClient implements RouterCallback {
|
|||||||
private LocalClient localClient;
|
private LocalClient localClient;
|
||||||
private PeerConnection.RTCConfiguration rtcConfiguration;
|
private PeerConnection.RTCConfiguration rtcConfiguration;
|
||||||
private PeerConnectionFactory peerConnectionFactory;
|
private PeerConnectionFactory peerConnectionFactory;
|
||||||
private String rtpCapabilities;
|
private Object rtpCapabilities;
|
||||||
private String sctpCapabilities;
|
private Object sctpCapabilities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @param name 房间名称
|
* @param name 房间名称
|
||||||
* @param roomId 房间ID
|
* @param roomId 房间ID
|
||||||
* @param clientId 当前终端ID
|
* @param clientId 当前终端ID
|
||||||
@@ -121,8 +120,12 @@ public class Room extends CloseableClient implements RouterCallback {
|
|||||||
return this.taoyao.requestFuture(
|
return this.taoyao.requestFuture(
|
||||||
this.taoyao.buildMessage("media::router::rtp::capabilities", "roomId", this.roomId),
|
this.taoyao.buildMessage("media::router::rtp::capabilities", "roomId", this.roomId),
|
||||||
response -> {
|
response -> {
|
||||||
final Object rtpCapabilities = MapUtils.get(response.body(), "rtpCapabilities");
|
this.nativeEnterRoom(
|
||||||
this.nativeEnterRoom(this.nativeRoomPointer, JSONUtils.toJSON(rtpCapabilities), this.peerConnectionFactory.getNativePeerConnectionFactory(), this.rtcConfiguration);
|
this.nativeRoomPointer,
|
||||||
|
JSONUtils.toJSON(MapUtils.get(response.body(), "rtpCapabilities")),
|
||||||
|
this.peerConnectionFactory.getNativePeerConnectionFactory(),
|
||||||
|
this.rtcConfiguration
|
||||||
|
);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
response -> {
|
response -> {
|
||||||
@@ -311,20 +314,19 @@ public class Room extends CloseableClient implements RouterCallback {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enterRoomCallback(String rtpCapabilities, String sctpCapabilities) {
|
public void enterRoomCallback(String rtpCapabilities, String sctpCapabilities) {
|
||||||
this.rtpCapabilities = rtpCapabilities;
|
this.rtpCapabilities = JSONUtils.toJava(rtpCapabilities);
|
||||||
this.sctpCapabilities = sctpCapabilities;
|
this.sctpCapabilities = JSONUtils.toJava(sctpCapabilities);
|
||||||
this.taoyao.push(this.taoyao.buildMessage(
|
this.taoyao.push(this.taoyao.buildMessage(
|
||||||
"room::enter",
|
"room::enter",
|
||||||
"roomId", this.roomId,
|
"roomId", this.roomId,
|
||||||
"password", this.password,
|
"password", this.password,
|
||||||
"rtpCapabilities", rtpCapabilities,
|
"rtpCapabilities", this.rtpCapabilities,
|
||||||
"sctpCapabilities", sctpCapabilities
|
"sctpCapabilities", this.sctpCapabilities
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void closeRoomCallback() {
|
public void closeRoomCallback() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1445,6 +1445,10 @@ class Taoyao extends RemoteClient {
|
|||||||
roomId: me.roomId,
|
roomId: me.roomId,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
if(!response.success) {
|
||||||
|
// TODO:提示
|
||||||
|
return;
|
||||||
|
}
|
||||||
const routerRtpCapabilities = response.body.rtpCapabilities;
|
const routerRtpCapabilities = response.body.rtpCapabilities;
|
||||||
me.mediasoupDevice = new mediasoupClient.Device();
|
me.mediasoupDevice = new mediasoupClient.Device();
|
||||||
// mediasoupClient.parseScalabilityMode("L2T3");
|
// mediasoupClient.parseScalabilityMode("L2T3");
|
||||||
|
|||||||
Reference in New Issue
Block a user