import 'dart:ui';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter_youtube_view/flutter_youtube_view.dart';
import 'package:flutter/material.dart';
import 'dart:core';
import data/movies.dart';
class DetailsPage extends StatefulWidget{
final Movies record;
//receive data from main.dart
DetailsPage({Key key, @required this.record}) : super(key: key);
@override
State<StatefulWidget> createState() {
return _DetailsPageState();
}
}
class _DetailsPageState extends State<DetailsPage> implements YouTubePlayerListener{
FlutterYoutubeViewController _controller;
double _currentVideoSecond = 0.0;
String _playerState = "";
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
Stack(
children: <Widget>[
Container(
height: 360.0,
width: double.infinity,
child: _backgroundImage(widget.record),
),
Container(
height: 360.0,
width: double.infinity,
color: Colors.black.withOpacity(0.375)),
IconButton(
icon: Icon(
Icons.arrow_back,
color: Colors.white,
),
onPressed: () => Navigator.pop(context)),
],
),
Container(
margin: EdgeInsets.only(top: 8.0,left: 8.0),
child: Text('Plot Summary',
style: TextStyle(fontSize: 20.0,
fontWeight: FontWeight.bold),
)
),
_aboutTitle(context, widget.record),
Container(
width: 200,
height: 200,
child: FlutterYoutubeView(
onViewCreated: _onYoutubeCreated,
listener: this,
scaleMode: YoutubeScaleMode.none,
params: YoutubeParam(
videoId: widget.record.trailerUrl,
showUI: false,
startSeconds: 0.0
),
),
),
],
),
);
}
//Youtube Methods Start
@override
void onCurrentSecond(double second) {
print("onCurrentSecond second = $second");
_currentVideoSecond = second;
}
@override
void onError(String error) {
print("onError error = $error");
}
@override
void onReady() {
print("onReady");
}
@override
void onStateChange(String state) {
print("onStateChange state = $state");
setState(() {
_playerState = state;
});
}
@override
void onVideoDuration(double duration) {
print("onVideoDuration duration = $duration");
}
void _onYoutubeCreated(FlutterYoutubeViewController controller) {
this._controller = controller;
}
//Youtube Methods End
}
Performing hot restart...
Syncing files to device Android SDK built for x86...
Restarted application in 2,814ms.
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
I/chatty (21355): uid=10083(u0_a83) 1.gpu identical 17 lines
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
I/chatty (21355): uid=10083(u0_a83) 1.gpu identical 558 lines
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
E/flutter (21355): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Trying to create a platform view of unregistered type: plugins.hoanglm.com/youtube, null)
E/flutter (21355): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)
E/flutter (21355): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302:33)
E/flutter (21355): <asynchronous suspension>
E/flutter (21355): #2 AndroidViewController._create (package:flutter/src/services/platform_views.dart:580:54)
E/flutter (21355): <asynchronous suspension>
E/flutter (21355): #3 AndroidViewController.setSize (package:flutter/src/services/platform_views.dart:505:14)
E/flutter (21355): <asynchronous suspension>
E/flutter (21355): #4 RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:178:29)
E/flutter (21355): <asynchronous suspension>
E/flutter (21355): #5 RenderAndroidView.performResize (package:flutter/src/rendering/platform_view.dart:159:5)
E/flutter (21355): #6 RenderObject.layout (package:flutter/src/rendering/object.dart:1617:9)
E/flutter (21355): #7 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
E/flutter (21355): #8 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #9 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #10 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #11 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #12 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #13 RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:413:13)
E/flutter (21355): #14 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:190:19)
E/flutter (21355): #15 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:233:19)
E/flutter (21355): #16 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #17 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:182:11)
E/flutter (21355): #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #19 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:407:13)
E/flutter (21355): #20 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1322:12)
E/flutter (21355): #21 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1240:20)
E/flutter (21355): #22 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #23 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #24 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #25 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #26 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #27 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #28 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #29 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #30 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #31 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #32 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #33 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #34 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
E/flutter (21355): #35 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
E/flutter (21355): #36 Render
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)
I/chatty (21355): uid=10083(u0_a83) 1.gpu identical 2 lines
D/EGL_emulation(21355): eglMakeCurrent: 0x9e36efe0: ver 2 0 (tinfo 0xa0d03280)