我正在使用这个库:https://bintray.com/google/webrtc/google-webrtc https://bintray.com/google/webrtc/google-webrtc
我想要实现的目标(至少在我的项目开始时)是在本地渲染视频。我正在使用这个教程(这是互联网上唯一的一个)https://vivekc.xyz/getting-started-with-webrtc-for-android-daab1e268ff4 https://vivekc.xyz/getting-started-with-webrtc-for-android-daab1e268ff4。不幸的是,最后一行代码不再是最新的。构造函数需要一个回调,我不知道如何实现:
localVideoTrack.addRenderer(new VideoRenderer(i420Frame -> {
// no idea what to put here
}));
我的代码与发布的教程中的代码完全相同。这是熟悉的第一步WebRTCAndroid 中的技术我无法弄清楚。我的相机正在捕捉视频,因为我可以在日志中看到它:
I/org.webrtc.Logging: CameraStatistics: Camera fps: 28.
主要问题是我不知道如何将它传递给我的SurfaceViewRenderer
通过回调。有人遇到过这个问题吗?我将非常感谢任何帮助或建议。
这是官方示例应用程序,它是唯一的来源,但它的做法与教程中的不同,它要复杂得多:https://webrtc.googlesource.com/src/+/master/examples/androidapp/src/org/appspot/apprtc https://webrtc.googlesource.com/src/+/master/examples/androidapp/src/org/appspot/apprtc
你是对的,API 不再与教程中的相匹配,但已经很接近了。
VideoTrack 有一个addRenderer(VideoRenderer renderer)
方法,该方法要求您创建一个 VideoRenderer,并将 SurfaceViewRenderer 作为参数。但这不再可能了,所以你应该使用addSink(VideoSink sink)
VideoTrack 的方法。 SurfaceViewRenderer 对象实现 VideoSinkonFrame(VideoFrame frame)
方法来完成这项工作。
VideoTrack videoTrack = utility.createVideoTrack();
videoTrack.addSink(this.localSurfaceViewRenderer);
我使用相同的官方示例应用程序作为参考来得出这个结论,它对我来说效果很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)