mp4parser ライブラリを使用して、2 つのビデオを連結するライブラリを作成しました。これにより、ビデオの録画を一時停止および再開できます (2 番目のビデオを録画した後、最初のビデオに追加します)。今、私の上司はラッパーを作成し、ビデオの一時停止をハードウェアでサポートしていない電話にこれを使用するように言いました。それを備えた電話(Samsung Galaxy S2およびSamsung 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 つのパラメーター (2 つのビデオ、どちらも FileInputStream) を使用します。記録関数から InputStream を取得し、それを 2 番目のパラメーターとして渡すことは可能ですか?