【问题标题】:Adding video to Android Content Manager将视频添加到 Android 内容管理器
【发布时间】:2014-03-25 13:33:10
【问题描述】:


如您所见,我是新来的(但对编程并不陌生)。我正在开发我的第一个 android 相机应用程序,但我无法让我的视频文件显示在画廊中。我了解我需要通知系统我的新文件的内容值,但我尝试的任何方法都不起作用。

奇怪的是,这对图像很有效:

ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA, imgFile.getAbsolutePath());
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);


然而,这不会总是让视频在图库应用中可见:

ContentValues values = new ContentValues();
values.put(MediaStore.Video.Media.DATA, vidFile.getAbsolutePath());
getContentResolver().insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);

我向您保证,它是一个有效的视频文件,有时上面的代码也有效。不过,我找不到什么时候可以工作和什么时候不工作的模式。
我还尝试了 getContentResolver().insert 的其他一些变体。事实上,如果我告诉它我的视频文件是一张图片,它总是使用我的视频的不可查看图片更新图库。
非常感谢您的帮助!

【问题讨论】:

    标签: android video


    【解决方案1】:

    嗯,这是一场磨难,但我找到了解决办法。实际上,这个新解决方案可能比我尝试做的更好。取决于我想的各种方法的开销。

    正如 Pascal here 所说,我可以通过广播正确的意图来更新内容提供者:

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAddedOrDeleted)));
    

    这使我的视频每次都可以在我的图库应用中看到(谢天谢地,我正要求助于编写自己的内置查看器) 但我仍然很好奇为什么我的方法适用于图像而不适用于视频,以防万一有人知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多