现在,我制作了一个库来连接 2 个视频,使用 mp4parser 库。有了这个,我可以暂停和继续录制视频(在录制第二个视频后,它会将其附加到第一个视频)。现在,我的老板告诉我做一个包装器,并将它用于没有硬件支持暂停视频的手机。对于具有该功能的手机(三星 Galaxy S2 和三星 Galaxy S1 可以使用他们的相机应用程序暂停视频录制),我需要在没有库的情况下执行此操作,因此速度会很快。如果在媒体记录器状态图http://developer.android.com/reference/android/media/MediaRecorder.html上看到,我该如何实现这个本机,没有暂停状态?
我已经从 Samsung Galaxe Ace 反编译了 Camera.apk 应用程序,并且代码在 CamcorderEngine.class 中有这样的方法:
public void doPauseVideoRecordingSync()
{
Log.v("CamcorderEngine", "doPauseVideoRecordingSync");
if (this.mMediaRecorder == null)
{
Log.e("CamcorderEngine", "MediaRecorder is not initialized.");
return;
}
if (!this.mMediaRecorderRecording)
{
Log.e("CamcorderEngine", "Recording is not started yet.");
return;
}
try
{
this.mMediaRecorder.pause();
enableAlertSound();
return;
}
catch (RuntimeException localRuntimeException)
{
Log.e("CamcorderEngine", "Could not pause media recorder. ", localRuntimeException);
enableAlertSound();
}
}
如果我在我的代码中尝试this.mMediaRecorder.pause();
,它不起作用,这怎么可能,他们使用相同的导入(android.media.MediaRecorder)。他们是否在系统级别重写了整个代码?
是否可以获取第二个视频的输入流(在录制时),并将这些数据直接附加到我的第一个视频中?对于我的连接方法,我使用 2 个参数(2 个视频,它们都是 FileInputStream),是否可以从录制函数中获取 InputStream 并将其作为第二个参数传递?