Android MediaRecorder预览显示黑屏

问题描述

我试图记录示例MainActivity中MediaPipe的输出流。本示例使用SurfaceView(getHolder()。getSurface())。 这很好。为了记录输出,我使用MediaRecorder,而不是使用SurfaceView,而是将Surface创建为

_mRecorderSurface = MediaCodec.createPersistentInputSurface();

,并将其设置为MediaPipe的输出

processor.getVideoSurfaceOutput().setSurface(_mRecorderSurface);

这与我用作输入源的表面相同

_mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
_mMediaRecorder.setInputSurface(_mRecorderSurface);

与此同时,我的录音效果很好。我将SurfaceView设置为最初设置MediaPipe输出的预览显示

_mMediaRecorder.setPreviewdisplay(SurfaceView.getHolder().getSurface());

即使录制工作正常并且可以播放视频,在预览屏幕中仍会看到黑色输出。我尝试在不同位置调用mediatype初始化,结果相同。预览始终为黑色。我还确认在MediaRecorder上调用prepare()之前,先调用setPreviewdisplay。不确定是否有帮助,但是我拥有的MediaRecorder的某些设置是

_mMediaRecorder.setonInfoListener(null);
_mMediaRecorder.setonErrorListener(null);

_mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
_mMediaRecorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4);
_mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
_mMediaRecorder.setAudioSamplingRate(44100);
_mMediaRecorder.setAudioEncodingBitRate(96000);
_mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
_mMediaRecorder.setVideoEncodingBitRate(12000000);
_mMediaRecorder.setVideoFrameRate(30);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)