【问题标题】:Record video from custom camera app to internal memory将视频从自定义相机应用程序录制到内存
【发布时间】:2023-03-22 08:50:01
【问题描述】:

好的,我已用尽所有链接,但似乎找不到答案。

我已关注this guide 创建摄像机应用程序,但我似乎无法保存文件。

在谈到保存到外部存储器的教程中,我正在开发的手机是 Google Nexus 4,没有外部存储器!所以我试图保存到内部存储器,但我不知道如何用视频做到这一点。我也阅读了storage options 指南,但我再次发现这没什么用......

理想情况下,我想这样做,以便将录制的视频显示在画廊中,这样任何帮助/指向正确的方向都会很棒!我当前的保存方法如下所示,复制了 android 教程中的方法。我知道这里需要编辑代码,但我也不确定是什么。

/** Create a file Uri for saving an image or video */
private static Uri getOutputMediaFileUri(int type){
    return Uri.fromFile(getOutputMediaFile(type));
}

/** Create a File for saving an image or video */
private static File getOutputMediaFile(int type){
// To be safe, you should check that the SDCard is mounted
// using Environment.getExternalStorageState() before doing this.

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
          Environment.DIRECTORY_PICTURES), "MyCameraApp");
// This location works best if you want the created images to be shared
// between applications and persist after your app has been uninstalled.

// Create the storage directory if it does not exist
if (! mediaStorageDir.exists()){
    if (! mediaStorageDir.mkdirs()){
        Log.d("MyCameraApp", "failed to create directory");
        return null;
    }
}

// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == MEDIA_TYPE_IMAGE){
    mediaFile = new File(mediaStorageDir.getPath() + File.separator +
    "IMG_"+ timeStamp + ".jpg");
} else if(type == MEDIA_TYPE_VIDEO) {
    mediaFile = new File(mediaStorageDir.getPath() + File.separator +
    "VID_"+ timeStamp + ".mp4");
} else {
    return null;
}

return mediaFile;
}

也许我遗漏了一些明显的东西,但我已经花了六个小时研究这个现在尝试不同的东西。提前致谢!

【问题讨论】:

    标签: android video save gallery media


    【解决方案1】:

    在教程中,它谈到了保存到外部存储器

    它被称为“外部存储”。你可以通过reading 来判断。

    我正在开发的手机是 Google Nexus 4,没有外部存储器

    Yes, it does:

    每台 Android 兼容设备都支持共享的“外部存储”,您可以使用它来保存文件。这可以是可移动存储介质(例如 SD 卡)或内部(不可移动)存储。保存到外部存储的文件是全球可读的,并且可以由用户在启用 USB 大容量存储以在计算机上传输文件时进行修改。

    使用内部存储分区作为外部存储的设备也可能提供 SD 卡插槽。在这种情况下,SD 卡不是外部存储的一部分,您的应用无法访问它(额外的存储仅适用于系统扫描的用户提供的媒体)。

    教程的代码显示请求将视频保存到外部存储。您的设备有外部存储设备。

    【讨论】:

    • 非常感谢您的回答!我现在觉得有点愚蠢,但我看到了外部这个词,只是假设这意味着设备外部,即 SD 卡。重读后感觉好多了。 :)
    • @user99903:是的,他们选择的名字还有一些不足之处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2014-05-10
    • 2015-09-12
    • 1970-01-01
    相关资源
    最近更新 更多