我正在使用camera2 api,您可以在这里找到两个示例:
GitHub - Camera2Video
GitHub - Camera2Basic
我正在使用相同的源代码,如在上面的链接,所以我不会复制我的源在这里(除非你需要一些部分,我将编辑我的问题并张贴它)。
编辑:
做了一些测试。当我试图通过手机播放视频时,它只显示第一帧,我可以听到录音中的声音。一旦视频播放到结束,视频就会自动重新启动并按原样显示。
然而,当我尝试在我的电脑上播放视频(从手机复制到桌面)时,我只会得到直到最后一帧的黑屏。显示最后一帧,但视频根本不播放。我能听到声音。
我在想也许视频编码/解码有问题?
问题:
在我的情况下,录像不起作用。我
在我手机上的目录里可以看到两个文件,
但当我播放视频时
(5秒视频)前4秒为黑色,最后一秒为
我录制的一帧就这样,但文件大小似乎很大(160MB)。
屏幕:
上传后将发布视频
我不知道怎么了,有人能帮忙吗?

最佳答案

这并不是一个真正的解决方案,但它还是成功地实现了我想要做的事情。
为了播放视频,我必须在MediaRecorder设置中完全禁用音频:

        //mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mMediaRecorder.setOutputFile(getVideoFile(activity).getAbsolutePath());
        mMediaRecorder.setVideoEncodingBitRate(10000000);
        mMediaRecorder.setVideoFrameRate(24);
        mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
        //mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

你可以注意到我在哪里可以注释掉命令。一旦我这样做了,视频播放正常。
希望这个糟糕的解决方法仍然可以帮助那些在视频录制中不需要音频的人。

07-24 09:46
查看更多