无法找到屏幕录制的视频(/sdcard/capture.mp4") - Mediaprojection API

时间:2018-02-26 14:11:10

标签: java android android-studio android-mediaprojection mediaprojectionmanager

我仍然是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");
}

非常感谢您的支持。

2 个答案:

答案 0 :(得分:1)

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

所以而不是:

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

试试这个:

String dir = Environment.getExternalStorageDirectory().getAbsolutePath();
mMediaRecorder.setOutputFile(dir + "/capture.mp4");

答案 1 :(得分:0)

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

希望这也将有助于将来的人..

感谢nope4561759的贡献......

mMediaRecorder.setOutputFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/video.mp4");