gpt4 book ai didi

Android:如何使用带有 ExoPlayer 的 MediaStore 打开视频文件?

转载 作者:行者123 更新时间:2023-12-04 22:49:54 25 4
gpt4 key购买 nike

我正在尝试使用 MediaStore API 播放本地视频文件,但我看到的只是我可以将它作为 OpenFileDiscriptor 对象或作为 InputStream 访问。
但是 ExoPlayer 没有任何这些方法可以支持。
那么现在我如何使用 MediaStore API 打开这个文件并在 Android 10+ 上播放呢?
另外,有没有人知道我如何使用 Native Libs 创建和保存视频?例如使用 MediaStore API 的 FFmpeg。

最佳答案

这是为了获取 Content Uri

val contentUri: Uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI
获取 Cursor
...

val cursor: Cursor? = contentResolver.query(contentUri, projection,
selection,
selectionArgs, sortOrder)
...
获取 id文件的
...
val id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID))
...
val fileUri = ContentUris.withAppendedId(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
id
)
使用这个 uri,创建 exoplayer MediaSource
val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(
context,
"exoplayer-example"
)
val mediaSource = ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(fileUri)
引用 thisthis .
请将第二部分作为一个单独的问题发布,我没有使用任何带有 MediaStore 的 native 库蜜蜂。可能返回 uri可以使用。

关于Android:如何使用带有 ExoPlayer 的 MediaStore 打开视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70479530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com