Reputation: 365
I made the splash screen for my app. But now, I want to use .mp4 extension in splash screen.
How can I do? Please help me. And, this is my code about splash screen using AssetImage:
import 'package:flutter/material.dart';
import 'package:bankingapp/main.dart';
void main() {
runApp(MaterialApp(home: MySplash()));
}
class MySplash extends StatefulWidget {
@override
_MySplashState createState() => _MySplashState();
}
class _MySplashState extends State<MySplash> {
@override
void initState() {
super.initState();
Future.delayed(Duration(seconds: 3), () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => MyBottomNavigationBar()));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
decoration: BoxDecoration(
image:
DecorationImage(image: AssetImage("assets/images/splash.jpg"))),
),
);
}
}
Upvotes: 2
Views: 8231
Reputation: 138
Use this video player video_player plugin & Save your mp4 file in assets/videos location Try the below code
import 'dart:async';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:video_player/video_player.dart';
import 'HomePage.dart';
class SplashPage extends StatefulWidget {
SplashPage({Key key}) : super(key: key);
@override
State<StatefulWidget> createState() => _SplashPageState();
}
class _SplashPageState extends State<SplashPage> {
VideoPlayerController _controller;
bool _visible = false;
@override
void initState() {
super.initState();
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
]);
_controller = VideoPlayerController.asset("assets/video/splash_video.mp4");
_controller.initialize().then((_) {
_controller.setLooping(true);
Timer(Duration(milliseconds: 100), () {
setState(() {
_controller.play();
_visible = true;
});
});
});
Future.delayed(Duration(seconds: 4), () {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => HomePage(param_homepage: 'Welcome Home')),
(e) => false);
});
}
@override
void dispose() {
super.dispose();
if (_controller != null) {
_controller.dispose();
_controller = null;
}
}
_getVideoBackground() {
return AnimatedOpacity(
opacity: _visible ? 1.0 : 0.0,
duration: Duration(milliseconds: 1000),
child: VideoPlayer(_controller),
);
}
_getBackgroundColor() {
return Container(color: Colors.transparent //.withAlpha(120),
);
}
_getContent() {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Stack(
children: <Widget>[
_getVideoBackground(),
],
),
),
);
}
}
Upvotes: 3
Reputation: 354
If you're looking for some kind of animation in splash screen, you can use lottie package. You can use this site to convert mp4
to lottie.json
Replace the container
with this widget
Lottie.asset(
'assets/LottieLogo1.json',
width: 200,
height: 200,
fit: BoxFit.fill,
)
Upvotes: 3