// import 'dart:convert';

// import 'package:fis_i18n/i18n.dart';
// import 'package:fis_jsonrpc/rpc.dart';
// import 'package:fis_ui/base_define/page.dart';
// import 'package:fis_ui/index.dart';
// import 'package:fis_ui/widgets/webview/webview.dart';
// import 'package:flutter/material.dart';
// import 'package:flyinsono/architecture/router/index.dart';
// import 'package:webviewx/webviewx.dart';

// class NormalLiveView extends FStatefulWidget implements FPage {
//   final String pullUrl;

//   @override
//   String get pageName => "NormalLiveView";
//   final void Function()? onRecording;
//   final void Function()? onEndRecord;

//   NormalLiveView(this.pullUrl, {this.onRecording, this.onEndRecord});
//   @override
//   FState<FStatefulWidget> createState() {
//     return _NormalLiveViewState();
//   }
// }

// class _NormalLiveViewState extends FState<NormalLiveView> {
//   @override
//   FWidget build(BuildContext context) {
//     return FLayoutBuilder(
//       builder: (BuildContext context, BoxConstraints constraints) {
//         double containerWidth = constraints.maxWidth;
//         double containerHeight = constraints.maxHeight;
//         // do something with containerWidth and containerHeight
//         final dto = JoinDeviceLiveRoomResult(
//           mergedChannel: true,
//           mergedVideoOutputHeight: containerHeight.toInt(),
//           mergedVideoOutputWidth: containerWidth.toInt(),
//           videoDeviceInfos: [
//             VideoDeviceInfoDTO(
//               liveData: LiveDataDTO(
//                 width: containerWidth.toInt(),
//                 height: containerHeight.toInt(),
//                 httpPullUrl:
//                     "https://liveplay.fis.plus/live/v6vfc7hv6yw0e187f0yxasdqa2.flv",
//               ),
//             )
//           ],
//         );
//         var json = jsonEncode(dto.toJson());
//         late WebViewXController webViewController;
//         return FFutureBuilder<String>(
//           future: DefaultAssetBundle.of(context)
//               .loadString("assets/webview/device_live.html"),
//           builder: (context, snapshot) {
//             if (snapshot.connectionState != ConnectionState.done ||
//                 snapshot.data == null) {
//               return const FCenter(
//                 child: FSizedBox(
//                   width: 20,
//                   height: 20,
//                   child: FCircularProgressIndicator(),
//                 ),
//               );
//             }
//             final webview = FWebViewX(
//               height: containerHeight,
//               width: containerWidth,
//               initialContent: snapshot.data!,
//               initialSourceType: SourceType.html,
//               javascriptMode: JavascriptMode.unrestricted,
//               ignoreAllGestures: false,
//               onWebViewCreated: (controller) {
//                 webViewController = controller;
//                 webViewController.setIgnoreAllGestures(true);
//               },
//               onPageFinished: (p0) {
//                 webViewController.callJsMethod('load', [json]);
//               },
//             );
//             return FStack(
//               children: [
//                 webview,
//                 if (widget.onRecording != null) ...[
//                   FPositioned(
//                     right: 15,
//                     bottom: 101,
//                     child: FElevatedButton(
//                       businessParent: widget,
//                       name: 'recording',
//                       onPressed: () {
//                         router.back(id: NavIds.HOME);
//                       },
//                       child:
//                           FText(i18nBook.realTimeConsultation.fullRecording.t),
//                     ),
//                   ),
//                 ],
//                 if (widget.onEndRecord != null) ...[
//                   FPositioned(
//                     right: 15,
//                     bottom: 58,
//                     child: FElevatedButton(
//                       businessParent: widget,
//                       name: 'end recording',
//                       onPressed: () {
//                         router.back(id: NavIds.HOME);
//                       },
//                       child:
//                           FText(i18nBook.realTimeConsultation.endRecording.t),
//                     ),
//                   ),
//                 ],
//                 FPositioned(
//                   right: 15,
//                   bottom: 15,
//                   child: FElevatedButton(
//                     businessParent: widget,
//                     name: 'exitLive',
//                     onPressed: () {
//                       router.back(id: NavIds.HOME);
//                     },
//                     child: FText(i18nBook.college.exitLive.t),
//                   ),
//                 ),
//               ],
//             );
//           },
//         );
//       },
//     );
//   }
// }
