【发布时间】:2019-10-07 11:24:28
【问题描述】:
如何在 Kotlin 中为 Android Studio 设置 WebRTC?我找不到可行的解决方案。请提供详细信息。
【问题讨论】:
标签: android kotlin webrtc webrtc-android
如何在 Kotlin 中为 Android Studio 设置 WebRTC?我找不到可行的解决方案。请提供详细信息。
【问题讨论】:
标签: android kotlin webrtc webrtc-android
许多在线示例都使用旧的 Android 版 WebRTC api。过去几年发生了很多变化。以下示例使用 Java,但应该类似于 Kotlin。
首先,您需要请求相机和音频的权限。然后也许使用 findviewbyid 设置你的视图,然后将你的 ice 服务器添加到一个数组中:
List<PeerConnection.IceServer> peerIceServers = new ArrayList<>();
peerIceServers.add(PeerConnection.IceServer.builder("stun:stun1.l.google.com:19302").createIceServer());
然后初始化你的对等连接工厂。
DefaultVideoEncoderFactory defaultVideoEncoderFactory = new DefaultVideoEncoderFactory(eglBase.getEglBaseContext(), true, true);
DefaultVideoDecoderFactory defaultVideoDecoderFactory = new DefaultVideoDecoderFactory(eglBase.getEglBaseContext());
PeerConnectionFactory.InitializationOptions initializationOptions =
PeerConnectionFactory.InitializationOptions.builder(this)
.createInitializationOptions();
PeerConnectionFactory.initialize(initializationOptions);
PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
factory = PeerConnectionFactory.builder()
.setVideoEncoderFactory(defaultVideoEncoderFactory)
.setVideoDecoderFactory(defaultVideoDecoderFactory)
.setOptions(options)
.createPeerConnectionFactory();
然后您可以初始化摄像头和音频以及您的信令客户端。
查看 Java 中的 example 可能会有所帮助:
【讨论】:
为时已晚。现在,我们有很多 WebRTC android 教程。
您需要按照以下步骤操作
开始流式传输视频
private fun initializePeerConnectionFactory() {
//Initialize PeerConnectionFactory globals.
val initializationOptions = InitializationOptions.builder(this).createInitializationOptions()
PeerConnectionFactory.initialize(initializationOptions)
//Create a new PeerConnectionFactory instance - using Hardware encoder and decoder.
val options = PeerConnectionFactory.Options()
val defaultVideoEncoderFactory = DefaultVideoEncoderFactory(rootEglBase?.eglBaseContext, /* enableIntelVp8Encoder */true, /* enableH264HighProfile */true)
val defaultVideoDecoderFactory = DefaultVideoDecoderFactory(rootEglBase?.eglBaseContext)
factory = PeerConnectionFactory.builder()
.setOptions(options)
.setVideoEncoderFactory(defaultVideoEncoderFactory)
.setVideoDecoderFactory(defaultVideoDecoderFactory)
.createPeerConnectionFactory()
}
这里有完整的演示,但使用 Java - Example
【讨论】: