Monday, March 18, 2024

Image Picker (Image from Gallery , Camera & pick Video)

 Image Picker (Image from Gallery , Camera & pick Video)



import 'dart:io';

import 'package:djbanaras/model/vendor_dj_model.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';

import 'package:video_player/video_player.dart';
import 'package:chewie/chewie.dart';

class VendorPage extends StatefulWidget {
const VendorPage({super.key});

@override
State<VendorPage> createState() => _VendorPageState();
}

class _VendorPageState extends State<VendorPage> {
TextEditingController dj_nameController = TextEditingController();
TextEditingController vendor_nameController = TextEditingController();
TextEditingController packageController = TextEditingController();
TextEditingController localityController = TextEditingController();
TextEditingController cityController = TextEditingController();
TextEditingController stateController = TextEditingController();
TextEditingController pincodeController = TextEditingController();
TextEditingController ratingController = TextEditingController();
TextEditingController experienceController = TextEditingController();
TextEditingController cover_imageController = TextEditingController();
TextEditingController imagesController = TextEditingController();
TextEditingController statusController = TextEditingController();
TextEditingController remarkController = TextEditingController();

File? _selectedImage;
File? _selectedCamera;
File? _selectedVideo;
late VideoPlayerController _videoPlayerController;
late ChewieController _chewieController;

final ImagePicker _picker = ImagePicker();

// Image Picker Method
Future _pickImageFromGallery() async {
final returnImage = await _picker.pickImage(source: ImageSource.gallery);
if (returnImage == null) return;
setState(() {
_selectedImage = File(returnImage!.path);
});
}

Future _pickImageFromCamera() async {
final returnImage = await _picker.pickImage(source: ImageSource.camera);
if (returnImage == null) return;
setState(() {
_selectedCamera = File(returnImage!.path);
});
}

Future _pickVideo() async {
final returnVideo = await _picker.pickVideo(source: ImageSource.gallery);
if (returnVideo == null) return;
setState(() {
_selectedVideo = File(returnVideo.path);
_videoPlayerController = VideoPlayerController.file(_selectedVideo!);
_chewieController = ChewieController(
videoPlayerController: _videoPlayerController,
autoInitialize: true,
looping: false,
);

// without Chewie
// _videoPlayerController = VideoPlayerController.file(_selectedVideo!)
// ..initialize().then((_) {
// setState(() {});
// _videoPlayerController.play();
// });
});
}

@override
void initState() {
super.initState();
// _videoPlayerController = VideoPlayerController.file(_selectedVideo!);
// _chewieController = ChewieController(
// videoPlayerController: _videoPlayerController,
// autoInitialize: true,
// looping: false,
// );
}

@override
void dispose() {
_videoPlayerController.dispose();
_chewieController.dispose();
super.dispose();
}

addVendorProperty() async {
// Future<VendorDjModel> getModel()async {
// String sitename= "surevih.in";
// String path= "/api/vendor";
// Map<String, String> map=Map();
//
// }
}
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
title: Text("Vendor"),
backgroundColor: Colors.greenAccent,
bottom: const TabBar(
tabs: [
Tab(
icon: Icon(Icons.home),
),
Tab(
icon: Icon(Icons.add),
),
Tab(
icon: Icon(Icons.person),
),
],
),
),
body: TabBarView(
children: [
// Fisrt Tab
SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(10),
child: Container(
child: Column(
children: [
Text("Welcome"),
Text("Your design"),
ElevatedButton(
child: Text("Add Vendors"),
onPressed: () {
// print("Clicked");
addVendorProperty();
}),
],
),
),
)
],
),
),
// Second Tab
SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(10),
child: Container(
child: Column(
children: [
Text(
"Add Your Dj ",
style: TextStyle(fontSize: 26),
),


// Text("Hi"),
SizedBox(
width: MediaQuery.of(context).size.width / 2.2,
child: TextField(
controller: remarkController,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: "Remark",
hintText: "plz remark",
),
),
)
],
),

SizedBox(
height: 5,
),

// Image Picker
Container(
// padding: const EdgeInsets.all(10),
height: 200,
width: double.infinity,
decoration: BoxDecoration(
border: Border.all(width: 5, color: Colors.red),
),
child: _selectedImage != null
? Image.file(
_selectedImage!,
fit: BoxFit.cover,
)
: null,
),

Container(
width: double.infinity,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.redAccent),
child: Text(
"Add Cover Image",
style: TextStyle(
color: Colors.white, fontSize: 20),
),
onPressed: () {
_pickImageFromGallery();
}),
),

// Image Picker from Camera
Container(
// padding: const EdgeInsets.all(10),
height: 200,
width: double.infinity,
decoration: BoxDecoration(
border: Border.all(width: 5, color: Colors.red),
),
child: _selectedCamera != null
? Image.file(
_selectedCamera!,
fit: BoxFit.cover,
)
: null,
),

Container(
width: double.infinity,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.redAccent),
child: Text(
"Add Image",
style: TextStyle(
color: Colors.white, fontSize: 20),
),
onPressed: () {
_pickImageFromCamera();
}),
),
// pick Video
Container(
// padding: const EdgeInsets.all(10),
height: 200,
width: double.infinity,
decoration: BoxDecoration(
border: Border.all(width: 5, color: Colors.red),
),
child: _selectedVideo !=null ? Chewie(controller: _chewieController) : null,

),


Container(
width: double.infinity,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.redAccent),
child: Text(
"Add Video",
style: TextStyle(
color: Colors.white, fontSize: 20),
),
onPressed: () {
_pickVideo();
}),
),
ElevatedButton(
child: Text("Create"),
onPressed: () {
print("Clicked");
print("Camera Path : ${_selectedCamera!.path}");
print("Gallery PAth : ${_selectedImage!.path}");
print("Video : ${_selectedVideo!.path}");
},
),
],
),
),
)
],
),
),
// Third Tab
Container(
color: Colors.red,
child: const Icon(Icons.person),
),
],
),

),
);
}
}

No comments:

Post a Comment

Featured post

Compress Image With Show File Size & Resolution in Flutter

 Compress Image With Show File Size & Resolution  1.Multiple File Image Compress with file Size import 'dart:io' ; import 'p...

LightBlog