8000 Merge pull request #167 from JerryJian/fix_rtc_video_view_build · next-coder/flutter-webrtc@97972c8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 97972c8

Browse files
authored
Merge pull request flutter-webrtc#167 from JerryJian/fix_rtc_video_view_build
Fix RtcVideoView not rebuild when setState called and renderer is cha…
2 parents f95c991 + b393f04 commit 97972c8

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

lib/rtc_video_view.dart

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,39 +108,37 @@ class RTCVideoRenderer {
108108

109109
class RTCVideoView extends StatefulWidget {
110110
final RTCVideoRenderer _renderer;
111-
RTCVideoView(this._renderer);
111+
RTCVideoView(this._renderer, {Key key}) : super(key: key);
112112
@override
113-
_RTCVideoViewState createState() => new _RTCVideoViewState(_renderer);
113+
_RTCVideoViewState createState() => new _RTCVideoViewState();
114114
}
115115

116116
class _RTCVideoViewState extends State<RTCVideoView> {
117-
final RTCVideoRenderer _renderer;
118117
double _aspectRatio;
119118
RTCVideoViewObjectFit _objectFit;
120119
bool _mirror;
121-
_RTCVideoViewState(this._renderer);
122120

123121
@override
124122
void initState() {
125123
super.initState();
126124
_setCallbacks();
127-
_aspectRatio = _renderer.aspectRatio;
128-
_mirror = _renderer.mirror;
129-
_objectFit = _renderer.objectFit;
125+
_aspectRatio = widget._renderer.aspectRatio;
126+
_mirror = widget._renderer.mirror;
127+
_objectFit = widget._renderer.objectFit;
130128
}
131129

132130
@override
133131
void deactivate() {
134132
super.deactivate();
135-
_renderer.onStateChanged = null;
133+
widget._renderer.onStateChanged = null;
136134
}
137135

138136
void _setCallbacks() {
139-
_renderer.onStateChanged = () {
137+
widget._renderer.onStateChanged = () {
140138
setState(() {
141-
_aspectRatio = _renderer.aspectRatio;
142-
_mirror = _renderer.mirror;
143-
_objectFit = _renderer.objectFit;
139+
_aspectRatio = widget._renderer.aspectRatio;
140+
_mirror = widget._renderer.mirror;
141+
_objectFit = widget._renderer.objectFit;
144142
});
145143
};
146144
}
@@ -163,13 +161,13 @@ class _RTCVideoViewState extends State<RTCVideoView> {
163161
..rotateY(_mirror ? -pi : 0.0),
164162
alignment: FractionalOffset.center,
165163
child:
166-
new Texture(textureId: _renderer._textureId))))));
164+
new Texture(textureId: widget._renderer._textureId))))));
167165
}
168166

169167
@override
170168
Widget build(BuildContext context) {
171169
bool renderVideo =
172-
(_renderer._textureId != null && _renderer._srcObject != null);
170+
(widget._renderer._textureId != null && widget._renderer._srcObject != null);
173171

174172
return new LayoutBuilder(
175173
builder: (BuildContext context, BoxConstraints constraints) {

0 commit comments

Comments
 (0)
0