Articles of mediastore

Android:如何获取应用程序专用的文件的video缩略图?

题: 如何获取应用程序专用文件的video缩略图? 具体来说,有没有办法直接从.mpeg文件中提取video帧? 背景: 我的应用程序包括一个可以录制video的相机。 出于产品原因,video文件最初是在应用程序的私有数据目录中以私有模式创建和编写的,使其对应用程序是私有的。 这是使用以下完成的: Context#openFileOutput(fileName, Context.MODE_PRIVATE) – 典型的文件路径如下所示:/ /data/data/[package.name]/files/[fileName].mp4 / Context#openFileOutput(fileName, Context.MODE_PRIVATE) /data/data/[package.name]/files/[fileName].mp4 – 仅供参考我已尝试使用Context.MODE_WORLD_READABLE而不是Context.MODE_PRIVATE但它没有帮助。 即使video最终可能最终存在于外部存储中(通过将文件移动到Environment#getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) ) ,也必须在video处于应用程序专用存储中时显示缩略图。 看起来ThumbnailUtils.createVideoThumbnail(String, int)在将文件移动到公共目录后(无论是将其添加到MediaStore)都可以正常工作,但是当文件在内部存储中时,它会无提示失败(返回null )。 注意:只要video文件位于应用程序专用存储中,它就不会添加到MediaStore(设备库中的图像/video内容提供商提供)。 只有将video移动到外部存储后才能将其添加到MediaStore中。 这是与产品相关的决定,我无法环游; 除非有一种方法可以将video添加到媒体商店而不会被其他应用程序看到…我想知道应用程序私有存储中的video是否可以添加到媒体商店并保持应用程序私有但获得所有免费“服务” “由媒体商店提供,例如缩略图生成。

Android:保存新图像后刷新图库

因此,在我的应用程序中,我一度将一堆图像保存到临时文件夹中,我希望它们立即显示在图库中。 重新启动,他们这样做,但否则他们没有。 我尝试过使用sendBroadcast方法: sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse(“file://” + Environment.getExternalStorageDirectory()))); 但我得到一个权限错误: E/AndroidRuntime( 2628): java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=2628, uid=10068 我可以在AndroidManifest中丢失权限,还是不再支持? 谢谢

将video插入MediaStore

我正在尝试将video插入MediaStore ,就像使用此方法存储图像一样: MediaStore.Images.Media.insertImage(getContentResolver(), imagePath, null, null) 由于MediaStore.Video.Media上没有类似的方法,我试图将记录插入MediaStore.Video.Media.EXTERNAL_CONTENT_URI ,然后将文件复制到目的地,如下所示: ContentValues values = new ContentValues(); values.put(MediaStore.Video.Media.TITLE, “Title1”); values.put(MediaStore.Video.Media.MIME_TYPE, “video/mp4”); values.put(MediaStore.Video.Media.DATA, videoPath); Uri uri = cr.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values); try { OutputStream os = cr.openOutputStream(uri); … … } (FileNotFoundException e) { cr.delete(uri, null, null); } 返回的uri以content://media/external/video/media/{id}的formsnon-null ,这似乎是正确的。 但是当cr.openOutputStream(uri); 如果被激活,则抛出FileNotFoundException 。 最后一点与查看其源代码的Images.Media.insertImage类似。 顺便说一句,我有WRITE_EXTERNAL_STORAGE权限。 另外,我正在测试4.3和4.4。

尝试保存图像时,MediaStore.Images.Media.insertImage返回null

我正在使用自定义视图,并且我正在使用canvas,用户可以在其中绘制任何内容,之后我想将该图像保存在SD卡中,但是无法做到这一点。 不知道发生了什么事。 else if(view.getId()==R.id.save_btn){ //save drawing AlertDialog.Builder saveDialog = new AlertDialog.Builder(this); saveDialog.setTitle(“Save drawing”); saveDialog.setMessage(“Save drawing to device Gallery?”); saveDialog.setPositiveButton(“Yes”, new DialogInterface.OnClickListener(){ private FileOutputStream fOut; public void onClick(DialogInterface dialog, int which){ //save drawing drawView.setDrawingCacheEnabled(true); //attempt to save String imgSaved = MediaStore.Images.Media.insertImage( getContentResolver(), drawView.getDrawingCache(), UUID.randomUUID().toString()+”.png”, “drawing”); //feedback if(imgSaved!=null){ Toast savedToast = Toast.makeText(getApplicationContext(), “Drawing saved to Gallery!”, Toast.LENGTH_SHORT); […]

为什么Images.Media.insertImage返回null

我有一些代码,我运行方法MediaStore.Images.Media.insertImage(从源而不是文件名插入),此代码将图像保存到MediaStore并返回图像的uri。 我知道当它因任何原因失败时它将返回null而不是uri。 此图片已被许多人多次下载,并且每隔一段时间它将从此方法返回null。 我从来没有遇到过这种情况,所以我不知道发生了什么。 这可能发生的原因是什么? 还有另一篇文章有相同的问题,但答案是MediaStore源代码的链接,但该链接转到一个页面说链接不可用。 任何帮助,将不胜感激。 谢谢。 删除我的SD卡后,我收到了这个错误,所以我知道这可能是一个原因,我不确定,但我觉得如果卡已满,也会发生这种情况。 仍然只是想知道是否还有其他原因。

MediaStore – Uri查询所有types的文件(媒体和非媒体)

在类MediaStore.Files类中,它提到了, 媒体提供程序表,包含媒体存储中所有文件的索引,包括非媒体文件。 我有兴趣查询像PDF这样的非媒体文件。 我正在使用CursorLoader来查询数据库。 构造函数的第二个参数需要一个Uri参数,很容易获得媒体types音频,图像和video,因为每个参数都为它们定义了EXTERNAL_CONTENT_URI和INTERNAL_CONTENT_URI常量。 对于MediaStore.Files,没有这样定义的常量。 我尝试使用getContentUri()方法,但无法找出volumeName的参数值。 我尝试给出“/ mnt / sdcard”以及将设备连接到我的系统时出现的卷名但是徒劳无功。 我在Google网上论坛上看到了类似的问题但尚未解决。 编辑:我也尝试使用Uri.fromFile(新文件(“/ mnt / sdcard /”))和Uri.parse(新文件(“/ mnt / sdcard”)。toString()),但这也没有用。

如何获取和设置(更改)音频文件的ID3标签(元数据)?

我正在努力改变ID3标签,音频文件中的元数据,例如: 艺术家 标题 专辑 等等 而核心点,。 已编辑的ID3标签应仅显示在我的应用中。

拍摄照片时获取 – java.lang.Throwable:file://通过ClipData.Item.getUri()公开Uri

例外情况是: file:// Uri exposed through ClipData.Item.getUri() java.lang.Throwable: file:// Uri exposed through ClipData.Item.getUri() at android.os.StrictMode.onFileUriExposed(StrictMode.java:1618) at android.net.Uri.checkFileUriExposed(Uri.java:2341) at android.content.ClipData.prepareToLeaveProcess(ClipData.java:808) at android.content.Intent.prepareToLeaveProcess(Intent.java:7926) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1506) at android.app.Activity.startActivityForResult(Activity.java:3832) at android.app.Activity.startActivityForResult(Activity.java:3783) at android.support.v4.app.FragmentActivity.startActivityFromFragment(Unknown Source) at android.support.v4.app.Fragment.startActivityForResult(Unknown Source) at me.chunyu.ChunyuDoctor.Utility.w.takePhoto(Unknown Source) at me.chunyu.ChunyuDoctor.Dialog.ChoosePhotoDialogFragment.takePhoto(Unknown Source) at me.chunyu.ChunyuDoctor.Dialog.ChoosePhotoDialogFragment.access$000(Unknown Source) at me.chunyu.ChunyuDoctor.Dialog.b.onClick(Unknown Source) at me.chunyu.ChunyuDoctor.Dialog.ChoiceDialogFragment.onClick(Unknown Source) at android.view.View.performClick(View.java:4848) at android.view.View$PerformClick.run(View.java:20270) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) […]

在Android中selectvideo的最佳方式是什么?

我有一个完美的Intent.ACTION_PICK与我的照片。 startActivityForResult(新的意图(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI),SELECT_IMAGE); 但它不适用于video。 当我点击我的名单上的一个video,它发挥vidoe而不是送我回来。 startActivityForResult(新的意图(Intent.ACTION_PICK,android.provider.MediaStore.Video.Media.INTERNAL_CONTENT_URI),SELECT_VIDEO); 一个主意 ?

如何查询Android SDK播放列表中的歌曲?

所以我的问题是如何查询播放列表内容。 我可以查询显示所有播放列表,但是如何查询显示特定播放列表中的歌曲。 谢谢