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

标签 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");
}

非常感谢您的支持。

最佳答案

这里的问题可能是"/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");

关于java - 找不到屏幕录制的视频 (/sdcard/capture.mp4") - Mediaprojection API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48990451/

相关文章:

java - 在 grails url 映射中使用目录

java - 在重新启动手机之前,我无法在图库中看到下载的图像

Android Studio 助手 : No clients were able to be added to your Firebase project

java - 根据位置条件创建Adapter

Android Studio 在创建新项目时卡住

java - 如何使用对象属性作为方法参数来设置映射键?

java - 通过 java webservice 提供数据库访问

java - 使用 SSL 和证书的 SVNKit 身份验证

android - 多个根标签错误

java - android studio 在哪里找到这个代理?