fix(android): video resolution orientation android (#3862)
* fix(android): ensure width/heigh respect rotation of the video + Add rotation info in onVideoTrack event
This commit is contained in:
parent
c2ce66ed26
commit
b698b1837b
@ -12,4 +12,5 @@ class VideoTrack {
|
||||
var index = -1
|
||||
var trackId = ""
|
||||
var isSelected = false
|
||||
var rotation = 0
|
||||
}
|
||||
|
@ -223,6 +223,7 @@ public class VideoEventEmitter {
|
||||
videoTrack.putString("trackId", vTrack.getTrackId());
|
||||
videoTrack.putInt("index", vTrack.getIndex());
|
||||
videoTrack.putBoolean("selected", vTrack.isSelected());
|
||||
videoTrack.putInt("rotation", vTrack.getRotation());
|
||||
waVideoTracks.pushMap(videoTrack);
|
||||
}
|
||||
}
|
||||
|
@ -1375,8 +1375,9 @@ public class ReactExoplayerView extends FrameLayout implements
|
||||
setSelectedTextTrack(textTrackType, textTrackValue);
|
||||
}
|
||||
Format videoFormat = player.getVideoFormat();
|
||||
int width = videoFormat != null ? videoFormat.width : 0;
|
||||
int height = videoFormat != null ? videoFormat.height : 0;
|
||||
boolean isRotatedContent = videoFormat != null && (videoFormat.rotationDegrees == 90 || videoFormat.rotationDegrees == 270);
|
||||
int width = videoFormat != null ? (isRotatedContent ? videoFormat.height : videoFormat.width) : 0;
|
||||
int height = videoFormat != null ? (isRotatedContent ? videoFormat.width : videoFormat.height) : 0;
|
||||
String trackId = videoFormat != null ? videoFormat.id : "-1";
|
||||
|
||||
// Properties that must be accessed on the main thread
|
||||
@ -1444,6 +1445,7 @@ public class ReactExoplayerView extends FrameLayout implements
|
||||
videoTrack.setWidth(format.width == Format.NO_VALUE ? 0 : format.width);
|
||||
videoTrack.setHeight(format.height == Format.NO_VALUE ? 0 : format.height);
|
||||
videoTrack.setBitrate(format.bitrate == Format.NO_VALUE ? 0 : format.bitrate);
|
||||
videoTrack.setRotation(format.rotationDegrees);
|
||||
if (format.codecs != null) videoTrack.setCodecs(format.codecs);
|
||||
videoTrack.setTrackId(format.id == null ? String.valueOf(trackIndex) : format.id);
|
||||
videoTrack.setIndex(trackIndex);
|
||||
|
@ -549,7 +549,7 @@ Callback function that is called when video tracks change
|
||||
Payload:
|
||||
|
||||
| Property | Type | Description |
|
||||
| -------- | ------- | ------------------------------------- |
|
||||
| -------- | ------- | --------------------------------------------------------------- |
|
||||
| index | number | index of the track |
|
||||
| trackId | string | Internal track ID |
|
||||
| codecs | string | MimeType of codec used for this track |
|
||||
@ -557,6 +557,7 @@ Payload:
|
||||
| height | number | Track height |
|
||||
| bitrate | number | Bitrate in bps |
|
||||
| selected | boolean | true if track is selected for playing |
|
||||
| rotation | number | 0, 90, 180 or 270 rotation to apply to the track (android only) |
|
||||
|
||||
Example:
|
||||
|
||||
@ -571,6 +572,7 @@ Example:
|
||||
height: 1080,
|
||||
bitrate: 10000,
|
||||
selected: true,
|
||||
rotation: 0,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user