android content file,Android中文件File path与content:// Uri的相互转换

content Uri to path

/**

* Gets the corresponding path to a file from the given content:// URI

* @param selectedVideoUri The content:// URI to find the file path from

* @param contentResolver The content resolver to use to perform the query.

* @return the file path as a string

*/

public static String getFilePathFromContentUri(Uri selectedVideoUri,

ContentResolver contentResolver) {

String filePath;

String[] filePathColumn = {MediaColumns.DATA};

Cursor cursor = contentResolver.query(selectedVideoUri, filePathColumn, null, null, null);

// 也可用下面的方法拿到cursor

// Cursor cursor = this.context.managedQuery(selectedVideoUri, filePathColumn, null, null, null);

cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

filePath = cursor.getString(columnIndex);

cursor.close();

return filePath;

}

path to content Uri

/**

* Gets the content:// URI from the given corresponding path to a file

* @param context

* @param imageFile

* @return content Uri

*/

public static Uri getImageContentUri(Context context, java.io.File imageFile) {

String filePath = imageFile.getAbsolutePath();

Cursor cursor = context.getContentResolver().query(

MediaStore.Images.Media.EXTERNAL_CONTENT_URI,

new String[] { MediaStore.Images.Media._ID },

MediaStore.Images.Media.DATA + "=? ",

new String[] { filePath }, null);

if (cursor != null && cursor.moveToFirst()) {

int id = cursor.getInt(cursor

.getColumnIndex(MediaStore.MediaColumns._ID));

Uri baseUri = Uri.parse("content://media/external/images/media");

return Uri.withAppendedPath(baseUri, "" + id);

} else {

if (imageFile.exists()) {

ContentValues values = new ContentValues();

values.put(MediaStore.Images.Media.DATA, filePath);

return context.getContentResolver().insert(

MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

} else {

return null;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "gst-launch-1.0 playbin uri=file:///path/to/file.swf" 这句命令是使用 GStreamer 命令行工具 "gst-launch-1.0" 来播放一个 SWF 文件。 "playbin" 是 GStreamer 的一个预定义的播放器元件,它可以自动处理所有必要的播放步骤,如解码、渲染和音频输出。 "uri=file:///path/to/file.swf" 设置了播放的文件URI,在这里,是本地文件 "file.swf" 的路径。 ### 回答2: gst-launch-1.0是GStreamer多媒体框架提供的命令行工具,用于构建和运行多媒体处理管道。playbin是一个内置的元素,用于处理音视频文件的播放。在上述命令,我们使用playbin元素来播放一个文件URIURI指向一个.swf文件URI是统一资源标识符的缩写,用于唯一地标识一个资源。在这里,我们使用URI指向一个.swf文件file:///表示文件协议,意味着文件位于本地计算机上。/path/to/file.swf是.swf文件的路径。因此,该命令的目的是使用playbin元素播放指定路径下的.swf文件。 GStreamer提供了灵活强大的多媒体处理功能,并支持各种音视频文件格式和协议。通过使用playbin元素,我们可以轻松地实现音视频文件的播放功能。此命令将自动处理文件的解码、播放和显示,并根据文件的内容和编码格式进行必要的配置。 要运行上述命令,我们需要在终端输入"gst-launch-1.0 playbin uri=file:///path/to/file.swf"并且将"/path/to/file.swf"更改为.swf文件在本地计算机上的实际路径。然后按下回车键即可启动该命令。在成功运行后,GStreamer将根据指定URI播放相应的.swf文件。 总而言之,使用gst-launch-1.0 playbin uri=file:///path/to/file.swf命令可以轻松地实现在本地计算机上播放指定.swf文件的功能,通过GStreamer提供的多媒体处理功能,我们可以处理各种音视频格式和协议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值