由于Android WebRTC客户端示例中的突破性变化,我正在寻找代码示例,它展示了如何在Android中添加和使用DataChannel。我只需要发送“Hello Worlds”通过2个Android设备之间的数据通道。以下是旧代码:
https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/examples/android/src/org/appspot/apprtc/apprtcdemoactivity.java#177
它使用了一些新版本中不再存在的类和接口。
那么,我如何将DataChannel的支持添加到我的Android WebRTC应用程序中,并通过它发送和接收文本呢?
我在一个带有旧版本WebRTC的项目中添加了DataChannel。我查看了最新的类,似乎方法和回调仍然存在,所以希望它对您有用。
对PeerConnectionClient
的更改:
在isinitiator=false之后
createpeerconnectioninternal
中创建DataChannel:
DataChannel.Init dcInit = new DataChannel.Init();
dcInit.id = 1;
dataChannel = pc.createDataChannel("1", dcInit);;
dataChannel.registerObserver(new DcObserver());
@Override
public void onDataChannel(final DataChannel dc) {
Log.d(TAG, "onDataChannel");
executor.execute(new Runnable() {
@Override
public void run() {
dataChannel = dc;
String channelName = dataChannel.label();
dataChannel.registerObserver(new DcObserver());
}
});
}
private class DcObserver implements DataChannel.Observer {
@Override
public void onMessage(final DataChannel.Buffer buffer) {
ByteBuffer data = buffer.data;
byte[] bytes = new byte[data.remaining()];
data.get(bytes);
final String command = new String(bytes);
executor.execute(new Runnable() {
public void run() {
events.onReceivedData(command);
}
});
}
@Override
public void onStateChange() {
Log.d(TAG, "DataChannel: onStateChange: " + dataChannel.state());
}
}
public void sendData(final String data) {
ByteBuffer buffer = ByteBuffer.wrap(data.getBytes());
peerConnectionClient.getPCDataChannel().send(new DataChannel.Buffer(buffer, false));
}
祝你好运
我试图理解我们什么时候需要使用这个应用程序。在我们的node Express中使用 当我在网上搜索时,我在reddit上偶然发现了这个答案,它说明了应用程序之间的区别。获取和应用程序。使用 在此基础上,我总结了以下几点。 充当超级路由或中间件?这意味着它在? 此外,如果有人能添加更多关于app.use.的信息/练习,我将不胜感激
在99%的情况下,当SQL server返回意外错误或文件系统中缺少文件时,我不能做任何合理的事情,我只想记录这种情况并将错误返回给用户。所以我看不出有什么理由应该返回“err”手动展开堆栈,实际上我会丢失stacktrace和上下文,并且更难找到错误的原因。 有没有什么我错过了,所以这种方法不会很好地工作?似乎大多数Go文章都建议不要使用panic/recover,但我不明白为什么。它看起来非常
我尝试在JAVA代码中调用MessageBoxA函数。以下方法有什么问题,以至于我的程序抛出了很多错误? 1-st: run:线程“main”java.lang.ClassFormatError:java.lang.ClassLoader的类文件加载/库/MessageBox中的本机或抽象方法中的代码属性。java.lang.ClassLoader.defineClass(ClassLoader.
问题内容: 因此,我正在使用C#开发一个应用程序以从Web读取一些信息,但这是一个Windows窗体应用程序。我得到一个JSON字符串,我需要从中获取一些信息。我知道有一个用于C#Web应用程序的库,但是如何在Windows窗体应用程序中使用呢? 问题答案: 那里有许多JSON库。您可以考虑以下三个建议: Json.NET ,一个相当流行的JSON(反序列化)库。 ****根据 ServiceSt
问题内容: 我正在寻找在 独立的(桌面/秋千)* 应用程序中使用 Spring的 示例或教程,我进行了很多搜索,但找不到有用的东西,所有示例和教程均适用于Web应用程序,请告知。 * 问题答案: 使用maven创建独立应用程序,如下所示: 使用Maven创建独立的应用程序 将applicationContext放在类路径中,并按如下所示将其加载到主类中: 在此处查看全文: http://www.d
我是kubernetes的新手,需要在openshift平台上使用k8s confimap将springboot应用程序的属性文件外部化。我已将属性文件保存在git repo中,作为“greeter.message=Spring Bootmyapplication.properties已在库伯内特斯上挂载为卷!”并使用“oc create confimap myconfig--from-file=