我正在开发一个webrtc视频通话Android应用程序,它工作得很好,我需要录制其他对等(remoteVideoStream)和myStream(localVideoStream)的视频,并将其转换为某些可保存的格式,如mp4或任何其他格式,我真的在寻找它,但却无法弄清楚如何完成这项工作.
我已经阅读了有关VideoFileRenderer的内容,我尝试将其添加到我的代码中以保存视频但是也无法使用它也没有任何方法调用例如record()或save(),尽管它有一个名为release()的方法这将用于结束保存视频.如果任何人有任何想法,这是课程:
@JNINamespace("webrtc::jni")
public class VideoFileRenderer implements Callbacks, VideoSink {
private static final String TAG = "VideoFileRenderer";
private final HandlerThread renderThread;
private final Handler renderThreadHandler;
private final FileOutputStream videoOutFile;
private final String outputFileName;
private final int outputFileWidth;
private final int outputFileHeight;
private final int outputFrameSize;
private final ByteBuffer outputFrameBuffer;
private EglBase eglBase;
private YuvConverter yuvConverter;
private ArrayList<ByteBuffer> rawFrames = new ArrayList();
public VideoFileRenderer(String outputFile, int outputFileWidth, int outputFileHeight, final Context sharedContext) throws IOException {
if (outputFileWidth …Run Code Online (Sandbox Code Playgroud) 我试图将我的应用程序上传到 Google Play,并在所附图片中收到此警告:

我搜索了这个错误,从未找到以前的线程,我只得到了这个链接:
https://support.google.com/googleplay/android-developer/answer/3131213?hl=en
它正在谈论进行内部测试或开放封闭测试。
我也受伤了,我可以跳过这个,但它说“不会对任何用户可用......”我只是想知道这只是为了记录,而不是因为我愿意这样做。
正如标题所说,我正在使用导航组件从同一个 navGraph 内的片段导航到另一个片段,每次导航时,都会调用 onDestroyView 方法,并且整个视图都会被销毁,我相信您以前知道这一点。
这里有两个问题,
谢谢
我正在尝试在新的 Android 4.2 预览版中使用 buildSrc 进行依赖项管理并收到此错误。
Cannot access 'java.lang.Object' which is a supertype of 'org.gradle.api.artifacts.repositories.MavenArtifactRepository'. Check your module classpath for missing or conflicting dependencies
Cannot access class 'java.net.URI'. Check your module classpath for missing or conflicting dependencies
Run Code Online (Sandbox Code Playgroud) 我真的在每个地方搜索过这个,我可以做同步和异步数据请求,但我实际上无法理解哪个是异步的?什么与什么同步?
我正在开发基于 webrtc 的视频聊天应用程序,目前视频通话正在运行,但我想使用 VideoFileRenderer 从远程视频流录制视频,该接口有很多实现,例如:https://chromium.googlesource .com/external/webrtc/+/master/sdk/android/api/org/webrtc/VideoFileRenderer.java 这是我正在使用的实现。它可以毫无问题地将视频保存到文件中,但在使用编解码器后我只能在桌面上播放它,因为文件是 .y4m 而不是 .mp4,当我尝试使用 VideoView 播放它时,它说它无法播放视频,即使我尝试使用 android 自带的 videoPlayer 播放视频也无法播放,我只能使用 MXPlayer、VLC 或任何其他在桌面上具有编解码器的应用程序播放它。
简化问题:
How can I play video.y4m on native android VideoView?
我会更简化它,我假设我不了解录制文件的格式,这是我用来录制文件的代码:
开始录制时:
remoteVideoFileRenderer = new VideoFileRenderer(
fileToRecordTo.getAbsolutePath(),
640,
480,
rootEglBase.getEglBaseContext());
remoteVideoTrack.addSink(remoteVideoFileRenderer);
Run Code Online (Sandbox Code Playgroud)
录制完成时:
remoteVideoFileRenderer.release();
Run Code Online (Sandbox Code Playgroud)
现在问题又来了:我有一个“fileToRecordTo”,这个视频文件可以在 GOM(windows)、VLC(windows、mac 和 Android)、MXPlayer(Android) 上播放,但我不能使用附带的播放器播放它嵌入 Android(如果工作正常,我会在我的应用程序中使用此播放器)或 Android 原生 videoView。
任何帮助。
这可能听起来很愚蠢,但我已经搜索了很长时间如何做到这一点,而我得到的只是更加困惑:/我制作了一个 webRTC 视频聊天应用程序,它工作得很好,我什么现在需要的是,当另一个 Android 设备想要呼叫第一个 Android 设备时,如何从另一个 Android 设备上拨打电话,我的意思是到目前为止,我必须在两台设备上输入相同的房间名称才能进行视频通话,但这在实际中并不实用生活中其他对等方或设备用户如何知道有人想给他打电话,我已经阅读过有关 SIP 的内容,但似乎不是我要找的内容,请帮忙。
我已经在很长一段时间内使用Firebase for'Android'而没有意识到它有REST服务,我可以借助任何后端库(如SDK-HTTPUrlConnection或任何其他第三方库,如Retrofit或Volley)来使用它.我尝试使用它来看看为什么它不同?为什么我会停止使用Google在Firebase中为我们提供的简单内容来使用REST API,我实际上无法回答这个问题,请知道为什么它存在,是不是为Android做的(虽然它的工作原理因为它是只是一个正常的REST)?或者你为什么这么想?
android ×8
webrtc ×3
android-architecture-navigation ×1
firebase ×1
google-play ×1
rest ×1
retrofit ×1
video-codecs ×1