我刚来这地方。
我在 android 中有一个应用程序,可以通过网络流式传输相机,并有一个 SurfaceView 组件来显示预览(我正在流式传输的内容)。
我想记录我在预览(surfaceview)中看到的内容而不重新打开相机,因为它刚刚从流中打开。
在棒棒糖中,我看到您可以使用 MediaRecorder api 进行录制并将视频源设置为 SURFACE。
我如何记录简单地添加一个从表面记录的新 MediaRecorder 对象。假设您已完成所有内容设置,应用程序可以正常工作并进行流式传输,并在 SurfaceView 组件中显示预览。我想定义一个新的记录器,并将源设置为表面视图。
谢谢
编辑:
您好,我尝试使用以下代码进行记录:
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(getVideoFile(activity, true).getAbsolutePath());
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation);
mMediaRecorder.setOrientationHint(orientation);
mMediaRecorder.prepare();
Run Code Online (Sandbox Code Playgroud)
假设您有一个应用程序可以打开相机并流出网络并在 SurfaceView 中显示预览。我想添加一个新的媒体记录器来记录表面视图中的内容。