如何在Android上确定视频的宽度和高度
我有一个视频文件,我想获取视频的宽度和高度。我不想玩它,只是为了获得尺寸。 我尝试使用 MediaPlayer:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(uriString);
mp.prepare();
int width = mp.getVideoWidth();
int height = mp.getVideoHeight();
但它返回 0 的宽度和高度,因为 VideoSizeChangedEvent 尚未触发。 如何获取视频的宽度和高度?
UPD:我需要 API 版本 7
I have a video file and I want to get width and height of video. I don't want to play it, just to get size.
I've tried to use MediaPlayer:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(uriString);
mp.prepare();
int width = mp.getVideoWidth();
int height = mp.getVideoHeight();
but it returns 0 for width and height, because VideoSizeChangedEvent didn't fire yet.
How can I get width and height of video?
UPD: I need API version 7
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
这适用于 API 级别 10 及更高版本:
This works in API level 10 and up:
在某些情况下,我们无法读取元数据。为了确保我们获得宽度和高度,最好使用
MediaMetadataRetriever
创建一个Bitmap
,然后从创建的Bitmap
中获取宽度和高度>,如下图:可以这样调用上面的方法:
In some cases, we are unable to read the metadata. To ensure that we get the width and height, it is best to create a
Bitmap
usingMediaMetadataRetriever
, then get the width and height from the createdBitmap
, as shown below:You can call the above method like this:
这对我有用
This worked for me
API 级别 7 解决方案:
API level 7 solution:
这个实用程序集用于在 Android 中使用 Size 抽象。
它包含一个类 SizeFromVideoFile.java
你可以这样使用它:
This set of utilities to work with the Size abstraction in Android.
It contains an class SizeFromVideoFile.java
You can use it like this:
尝试从系统内容提供商查询。它将返回视频(本地文件)的一些有用信息
try this to query from system content provider. It will return some useful info of the Videos(local files)
Kotlin 版本
Kotlin Version ????
Extention Function
我的应用程序中使用的 kotlin 版本引用了 user493244 的答案
kotlin version used in my app referring to user493244's answer