1

我仍然是android APP开发的大佬,我正在尝试使用Mediaprojection API来录制我的屏幕..我现在面临的问题是..录制后我无法在定义的位置找到视频文件(sdcard/ capture.mp4) .. 下面是显示我要保存视频的位置的代码部分...

private void initRecorder() {
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mMediaRecorder.setVideoEncodingBitRate(512 * 1000);
    mMediaRecorder.setVideoFrameRate(30);
    mMediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
    mMediaRecorder.setOutputFile("/sdcard/capture.mp4");
}

非常感谢您的支持 。

4

2 回答 2

1

这里的问题可能是"/sdcard/"。通常最好的做法是使用Environment.getExternalStorageDirectory()而不是“/sdcard/”,因为并非所有 Android 设备都将其用作外部存储目录(实际上,我已经有一段时间没有在任何 Android 设备上看到它了)。在运行 Android 8.1.0 的 Pixel 上,返回"/storage/emulated/0"Environment.getExternalStorageDirectory()的绝对路径。

所以而不是:

mMediaRecorder.setOutputFile("/sdcard/capture.mp4");

试试这个:

String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
mMediaRecorder.setOutputFile(dir + "/capture.mp4");
于 2018-02-26T14:34:59.463 回答
0

我通过定义我的路径来解决上述问题,如下行所示......我将下载文件夹设置为我的目的地,现在我可以看到录制的视频注意:使用此解决方案,新视频将覆盖以前的视频。

希望这对将来的人也有帮助..

感谢 nope4561759 的贡献...

mMediaRecorder.setOutputFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/video.mp4");
于 2018-03-15T09:10:32.887 回答