8
A
答えて
6
setAudio *を呼び出さずにMediaRecorderを使用することができます。これは、MediaRecorderを使用して、私の最初の時間ですが、この例では、動作しているようです:
public class CamcorderView extends SurfaceView implements
SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
private MediaRecorder mRecorder;
public CamcorderView(Context context, AttributeSet attrs) {
super(context, attrs);
mHolder = getHolder();
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mHolder.addCallback(this);
mCamera = Camera.open();
mRecorder = new MediaRecorder();
}
public void stop() {
mRecorder.stop();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera.unlock();
mRecorder.setCamera(mCamera);
mRecorder.setPreviewDisplay(mHolder.getSurface());
// You may want to change these
mRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
// You'll definitely want to change this
mRecorder.setOutputFile("/mnt/sdcard/out");
try {
mRecorder.prepare();
} catch (IllegalStateException e) {
Log.e("IllegalStateException", e.toString());
} catch (IOException e) {
Log.e("IOException", e.toString());
}
mRecorder.start();
}
}
また、呼び出したいことがあります。
setVideoSize(int, int);
setVideoFrameRate(int);
9
あなたはMediaRecorderを準備することができますビルドされたプロファイル(CamcorderProfile)から必要なフィールドをコピーします。オーディオ設定を外すだけでいいですね。下記のコードを必要に応じて編集するには、ここではステップ3が不可欠です。
private boolean prepareVideoRecorder() {
mCamera = getCameraInstance();
mMediaRecorder = new MediaRecorder();
// store the quality profile required
CamcorderProfile profile = CamcorderProfile.get(cameraid, CamcorderProfile.QUALITY_HIGH);
// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
// Step 2: Set sources
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: Set all values contained in profile except audio settings
mMediaRecorder.setOutputFormat(profile.fileFormat);
mMediaRecorder.setVideoEncoder(profile.videoCodec);
mMediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
mMediaRecorder.setVideoFrameRate(profile.videoFrameRate);
mMediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
// Step 4: Set output file
mMediaRecorder.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString());
// Step 5: Set the preview output
mMediaRecorder.setPreviewDisplay(mPreview.getHolder().getSurface());
// Step 6: Prepare configured MediaRecorder
try {
mMediaRecorder.prepare();
} catch (IllegalStateException e) {
releaseMediaRecorder();
return false;
} catch (IOException e) {
releaseMediaRecorder();
return false;
}
return true;
}
+0
はうまくいきます。ありがとうございます –
+0
素敵な解決策......その非常に私の役に立つ..... – jack
関連する問題
- 1. Android:生のオーディオを録音して同時にビデオを録画する
- 2. AVCaptureSessionオーディオでビデオを録画する
- 3. Androidビデオ録画エラー
- 4. Androidビデオ録画&サムネイル
- 5. ビデオ録画フォーマット.mkv for android
- 6. プレビューなしのビデオ録画
- 7. Javafxを使用してウェブカメラからのオーディオとビデオを録画
- 8. iOS:AVAssetWriterInputはビデオ録画にオーディオを保存しません
- 9. Android App - ビデオ/オーディオRecord
- 10. Androidアプリケーションで録画を停止することができます。オーディオ/ビデオ
- 11. gstreamerとオーディオ/ビデオが同期していないテレビチューナー/ウェブカメラからの録画
- 12. Androidビデオでのコントロールの録画
- 13. Androidの円形バッファへのビデオ録画
- 14. Androidカメラのプレビューコールバックとメディアレコーダーの録画ビデオ
- 15. ビデオ録画中のAndroidプレビュー処理
- 16. AVCaptureSessionとオーディオを同時に再生するオーディオ/ビデオを録画するには?
- 17. オンラインでskypeでオーディオ/ビデオを録画する - skype web sdk
- 18. iPhoneビデオ録画
- 19. Androidオーディオの録音は機能しますが、録画はできません。
- 20. ビデオとオーディオの作成 - ビデオのオーディオがなくなった
- 21. フレーム単位でAVFoundationフレームを使用してオーディオとビデオを録画する
- 22. androidのオーバーレイ画像でビデオを録画する
- 23. PhoneGapでのビデオ録画のような
- 24. Androidで録画ビデオのアルバムを指定します。
- 25. android - 各ビデオフレームにタイムスタンプ付きのMediaCodecビデオを録画します。
- 26. Android:ビデオやオーディオへのMP4のデモ?
- 27. 画面にビデオを表示せずにAndroidでビデオを録画する
- 28. ヘッドレスセレンブラウザのビデオを録画
- 29. iPhoneでのビデオ録画
- 30. Androidスタジオ:ビデオとオーディオの圧縮
ありがとうございました!それは実際に動作します! CamcorderProfileでこの設定を適用する方法を知っているかもしれませんか?自動的に生成されたパラメータを 'camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);'として使用しているので、すべての設定は 'mediaRecorder.setProfile(camcorderProfile);として適用されます。 ' – Sergii
は適切ではないため詳細を提供できますか? –