屏幕截图文件需要很长时间才能保存在Android设备上

代码

我有一个功能,可以通过位图捕获视频的屏幕快照/视频帧,并将图像文件(.png)保存到Android手机上的“图片”目录中。但是,由于某些原因,将图像保存在手机上需要很长时间。例如,我将运行该应用程序/功能,并且该文件将在10分钟后显示在手机上。知道为什么吗?

public static Bitmap captureVideoFrame(Activity activity, VideoView vv, String viewSource, int currPosInMs)
    {   
        MediaMetadataRetriever mmRetriever = new MediaMetadataRetriever();
        Map<String, String> headers = new HashMap<String, String>();
        mmRetriever.setDataSource(viewSource, headers);

        Bitmap bmFrame = mmRetriever.getFrameAtTime(currPosInMs * 1000); // unit in microsecond

        if(bmFrame == null){
            Toast.makeText(activity.getApplicationContext(), "Bitmap is EMPTY. Curr Position: " + currPosInMs, Toast.LENGTH_SHORT).show();
        }
        else
        {
            Toast.makeText(activity.getApplicationContext(), "Bitmap is GOOD. Curr Position: " + currPosInMs, Toast.LENGTH_SHORT).show();

            // Save file
            String mPath = Environment.getExternalStorageDirectory().toString() + "/" + PICTURES_DIRECTORY + Utilities.getDayTimeString() + ".png";
            OutputStream fout = null;
            File imageFile = new File(mPath);

            try 
            {
                fout = new FileOutputStream(imageFile);
                bmFrame.compress(Bitmap.CompressFormat.JPEG, 100, fout);
                fout.flush();
                fout.close();

                Toast.makeText(activity.getApplicationContext(), "Saved file successfully!", Toast.LENGTH_SHORT).show();
            }
            catch(Exception e){

            }
        }

        return bmFrame;
    }
安德烈德

首先,您应该放fout.flush();。fout.close(); 在catch部分之后的final块中,以确保始终写入文件。

如果您正在通过Windows资源管理器查看USB连接,则可能是由于缓存造成的延迟(该文件实际上存在于磁盘上,但未显示)。我可以在三星设备上注意到这一点。如果您在电话上使用文件浏览器(例如,Astro文件管理器),则应该实时看到修改(在存储图片的目录上进行刷新,或者在目录上向上或向下导航)。

在finally块完成之后,记录以下内容-imageFile.exists()和imageFile.length(),以查看是否写入了文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

屏幕截图文件需要很长时间才能保存在Android设备上

来自分类Dev

暂停后登录屏幕需要很长时间才能打开

来自分类Dev

rsync需要很长时间才能发送文件列表

来自分类Dev

doInBackground需要很长时间才能启动

来自分类Dev

标签需要很长时间才能更改

来自分类Dev

STS需要很长时间才能启动

来自分类Dev

查询需要很长时间才能执行

来自分类Dev

申请需要很长时间才能终止

来自分类Dev

SQL需要很长时间才能执行

来自分类Dev

Django需要很长时间才能加载

来自分类Dev

标签需要很长时间才能更改

来自分类Dev

Ubuntu需要很长时间才能启动

来自分类Dev

Xubuntu需要很长时间才能启动

来自分类Dev

swapfile需要很长时间才能“清除”

来自分类Dev

didUpdateLocations 需要很长时间才能加载

来自分类Dev

查询需要很长时间才能执行

来自分类Dev

SymmetricDS 需要很长时间才能启动

来自分类Dev

UiViewController 需要很长时间才能显示

来自分类Dev

在 C# 中另存为 Excel 可能需要很长时间才能保存

来自分类Dev

需要“赛璐oid”需要很长时间才能加载

来自分类Dev

16.04上的Wifi需要很长时间才能找到已知和未知的本地网络

来自分类Dev

该程序在“返回”之后需要很长时间才能关闭;在main()上

来自分类Dev

16.04上的Wifi需要很长时间才能找到已知和未知的本地网络

来自分类Dev

在win7 x64上的cygwin需要很长时间才能响应

来自分类Dev

蓝牙BNEP需要很长时间才能在启动Debian上加载

来自分类Dev

需要很长时间才能使用POI生成Excel文件

来自分类Dev

C#脚本清理文件需要很长时间才能执行

来自分类Dev

需要很长时间才能使用POI生成Excel文件

来自分类Dev

使用 SCP 协议和 WinSCP 下载时,排除的文件需要很长时间才能处理

Related 相关文章

  1. 1

    屏幕截图文件需要很长时间才能保存在Android设备上

  2. 2

    暂停后登录屏幕需要很长时间才能打开

  3. 3

    rsync需要很长时间才能发送文件列表

  4. 4

    doInBackground需要很长时间才能启动

  5. 5

    标签需要很长时间才能更改

  6. 6

    STS需要很长时间才能启动

  7. 7

    查询需要很长时间才能执行

  8. 8

    申请需要很长时间才能终止

  9. 9

    SQL需要很长时间才能执行

  10. 10

    Django需要很长时间才能加载

  11. 11

    标签需要很长时间才能更改

  12. 12

    Ubuntu需要很长时间才能启动

  13. 13

    Xubuntu需要很长时间才能启动

  14. 14

    swapfile需要很长时间才能“清除”

  15. 15

    didUpdateLocations 需要很长时间才能加载

  16. 16

    查询需要很长时间才能执行

  17. 17

    SymmetricDS 需要很长时间才能启动

  18. 18

    UiViewController 需要很长时间才能显示

  19. 19

    在 C# 中另存为 Excel 可能需要很长时间才能保存

  20. 20

    需要“赛璐oid”需要很长时间才能加载

  21. 21

    16.04上的Wifi需要很长时间才能找到已知和未知的本地网络

  22. 22

    该程序在“返回”之后需要很长时间才能关闭;在main()上

  23. 23

    16.04上的Wifi需要很长时间才能找到已知和未知的本地网络

  24. 24

    在win7 x64上的cygwin需要很长时间才能响应

  25. 25

    蓝牙BNEP需要很长时间才能在启动Debian上加载

  26. 26

    需要很长时间才能使用POI生成Excel文件

  27. 27

    C#脚本清理文件需要很长时间才能执行

  28. 28

    需要很长时间才能使用POI生成Excel文件

  29. 29

    使用 SCP 协议和 WinSCP 下载时,排除的文件需要很长时间才能处理

热门标签

归档