This repository has been archived on 2025-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
ha_client/lib/entities/camera/widgets/camera_stream_view.dart
2020-02-20 11:18:09 +00:00

60 lines
1.5 KiB
Dart

part of '../../../main.dart';
class CameraStreamView extends StatefulWidget {
CameraStreamView({Key key}) : super(key: key);
@override
_CameraStreamViewState createState() => _CameraStreamViewState();
}
class _CameraStreamViewState extends State<CameraStreamView> {
@override
void initState() {
super.initState();
}
CameraEntity _entity;
String streamUrl = "";
WebViewController webViewController;
launchStream() {
Launcher.launchURLInCustomTab(
context: context,
url: streamUrl
);
}
@override
Widget build(BuildContext context) {
_entity = EntityModel
.of(context)
.entityWrapper
.entity;
streamUrl = '${ConnectionManager().httpWebHost}/api/camera_proxy_stream/${_entity
.entityId}?token=${_entity.attributes['access_token']}';
return AspectRatio(
aspectRatio: 1.33,
child: WebView(
initialUrl: streamUrl,
initialMediaPlaybackPolicy: AutoMediaPlaybackPolicy.always_allow,
debuggingEnabled: Logger.isInDebugMode,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController controller) {
webViewController = controller;
},
onPageStarted: (url) {
rootBundle.loadString('assets/js/cameraImgViewHelper.js').then((js){
webViewController.evaluateJavascript(js);
});
},
),
);
}
@override
void dispose() {
super.dispose();
}
}