surfaceView获取视频源的宽高和方向
时间: 2023-12-14 19:36:16 浏览: 95
android使用surfaceview+MediaPlayer播放视频
要获取SurfaceView获取视频源的宽高和方向,可以通过以下几个步骤实现:
1. 获取SurfaceView的宽高
可以通过SurfaceView的getWidth()和getHeight()方法获取SurfaceView的宽高,代码如下:
```
int surfaceViewWidth = surfaceView.getWidth();
int surfaceViewHeight = surfaceView.getHeight();
```
2. 获取视频源的宽高
如果是从本地文件或网络流中获取视频源,可以通过MediaMetadataRetriever类获取视频的宽高,代码如下:
```
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filePath);
String width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
String height = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
int videoWidth = Integer.parseInt(width);
int videoHeight = Integer.parseInt(height);
```
3. 获取视频源的方向
可以通过MediaMetadataRetriever类获取视频的旋转角度,代码如下:
```
String rotation = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);
int videoRotation = Integer.parseInt(rotation);
```
其中,视频的旋转角度可能为0、90、180或270度,需要根据具体情况进行处理。
阅读全文