|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:recook/base/base_store_state.dart';
|
|
|
|
import 'package:recook/constants/api.dart';
|
|
|
|
import 'package:recook/constants/constants.dart';
|
|
|
|
import 'package:recook/constants/header.dart';
|
|
|
|
import 'package:recook/constants/styles.dart';
|
|
|
|
import 'package:recook/pages/home/function/home_fuc.dart';
|
|
|
|
import 'package:recook/pages/home/model/aku_video_list_model.dart';
|
|
|
|
import 'package:recook/widgets/custom_app_bar.dart';
|
|
|
|
import 'package:velocity_x/velocity_x.dart';
|
|
|
|
import 'package:flustars/flustars.dart';
|
|
|
|
import 'package:chewie/chewie.dart';
|
|
|
|
import 'package:video_player/video_player.dart';
|
|
|
|
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
|
|
|
|
|
|
|
class AkuCollegeDetailPage extends StatefulWidget {
|
|
|
|
final AkuVideo akuVideo;
|
|
|
|
|
|
|
|
const AkuCollegeDetailPage({Key key, @required this.akuVideo})
|
|
|
|
: super(key: key);
|
|
|
|
@override
|
|
|
|
State<StatefulWidget> createState() {
|
|
|
|
return _AkuCollegeDetailPageState();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class _AkuCollegeDetailPageState extends BaseStoreState<AkuCollegeDetailPage> {
|
|
|
|
//final FijkPlayer player = FijkPlayer();
|
|
|
|
|
|
|
|
VideoPlayerController _videoPlayerController;
|
|
|
|
ChewieController _chewieController;
|
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
Future.delayed(Duration.zero, () async {
|
|
|
|
String code = await HomeFuc.addHits(widget.akuVideo.id);
|
|
|
|
print(code);
|
|
|
|
});
|
|
|
|
|
|
|
|
if (widget.akuVideo.type == 1) {
|
|
|
|
_videoPlayerController = VideoPlayerController.network(
|
|
|
|
Api.getImgUrl(widget.akuVideo.videoUrl));
|
|
|
|
_videoPlayerController.initialize().then((_) {
|
|
|
|
_chewieController = ChewieController(
|
|
|
|
videoPlayerController: _videoPlayerController,
|
|
|
|
aspectRatio: _videoPlayerController.value.aspectRatio,
|
|
|
|
autoPlay: false,
|
|
|
|
showControls: true,
|
|
|
|
);
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
if (widget.akuVideo.textBody != null) {}
|
|
|
|
}
|
|
|
|
|
|
|
|
// player.setDataSource(Api.getImgUrl(widget.akuVideo.videoUrl),
|
|
|
|
// autoPlay: false);
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
void dispose() {
|
|
|
|
_videoPlayerController?.dispose();
|
|
|
|
_chewieController?.dispose();
|
|
|
|
super.dispose();
|
|
|
|
//player.dispose();
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget buildContext(BuildContext context, {store}) {
|
|
|
|
return Scaffold(
|
|
|
|
backgroundColor: Color(0xFFFFFFFF),
|
|
|
|
appBar: CustomAppBar(
|
|
|
|
title: "".text.bold.size(18.rsp).make(),
|
|
|
|
themeData: AppThemes.themeDataGrey.appBarTheme,
|
|
|
|
),
|
|
|
|
body: _bodyWidget(),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_bodyWidget() {
|
|
|
|
return SingleChildScrollView(
|
|
|
|
child: Column(
|
|
|
|
children: [
|
|
|
|
40.hb,
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
30.wb,
|
|
|
|
Text(
|
|
|
|
widget.akuVideo.title,
|
|
|
|
maxLines: 2,
|
|
|
|
softWrap: true,
|
|
|
|
overflow: TextOverflow.ellipsis,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 20.rsp,
|
|
|
|
color: Color(0xFF333333),
|
|
|
|
fontWeight: FontWeight.bold),
|
|
|
|
).expand(),
|
|
|
|
30.wb,
|
|
|
|
],
|
|
|
|
),
|
|
|
|
20.hb,
|
|
|
|
Row(
|
|
|
|
children: [
|
|
|
|
30.wb,
|
|
|
|
Text(
|
|
|
|
widget.akuVideo.subTitle,
|
|
|
|
softWrap: true,
|
|
|
|
overflow: TextOverflow.ellipsis,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 12.rsp,
|
|
|
|
color: Color(0xFF333333),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
40.wb,
|
|
|
|
Container(
|
|
|
|
padding: EdgeInsets.only(top: 3.rw),
|
|
|
|
child: Text(
|
|
|
|
_getDateTime(widget.akuVideo.createDTime),
|
|
|
|
softWrap: true,
|
|
|
|
overflow: TextOverflow.ellipsis,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 12.rsp,
|
|
|
|
color: Color(0xFF999999),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
40.wb,
|
|
|
|
Text(
|
|
|
|
widget.akuVideo.numberOfHits.toString() + '人已学习',
|
|
|
|
softWrap: true,
|
|
|
|
overflow: TextOverflow.ellipsis,
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: 12.rsp,
|
|
|
|
color: Color(0xFF999999),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
20.hb,
|
|
|
|
widget.akuVideo.type == 1 ? _playVideo() : _playImagText()
|
|
|
|
],
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
_getDateTime(String date) {
|
|
|
|
if (date.isEmpty) {
|
|
|
|
return date;
|
|
|
|
} else {
|
|
|
|
DateTime dateTime = DateUtil.getDateTime(date);
|
|
|
|
return DateUtil.formatDate(dateTime, format: 'yyyy-MM-dd');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_playVideo() {
|
|
|
|
return Container(
|
|
|
|
padding: EdgeInsets.only(top: 20.rw, left: 15.rw, right: 15.rw),
|
|
|
|
height: 230.rw,
|
|
|
|
child: _chewieController != null
|
|
|
|
? Chewie(
|
|
|
|
controller: _chewieController,
|
|
|
|
)
|
|
|
|
: SizedBox(),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_playImagText() {
|
|
|
|
return HtmlWidget(
|
|
|
|
widget.akuVideo.textBody,
|
|
|
|
textStyle: TextStyle(color: Color(0xFF333333)),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|