video 버튼 만들기에서 Stack 이 잘안됩니다.
324
16 asked
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:video_player/video_player.dart';
class CustomVideoPlayer extends StatefulWidget {
final XFile video;
const CustomVideoPlayer({required this.video, super.key});
@override
State<CustomVideoPlayer> createState() => _CustomVideoPlayerState();
}
class _CustomVideoPlayerState extends State<CustomVideoPlayer> {
// 비디오 플레이어 같은 경우 컨트롤러를 사용해서 위젯을 구성해 줘야한다.
VideoPlayerController? videoController;
@override
void initState() {
super.initState();
initializeController();
}
initializeController() async {
videoController = VideoPlayerController.file(
File(widget.video.path),
// 이미지 피커에서 가져온 XFile 이랑 형식이 같지않아 dart:io 에 File에다가 변경해줘서 넣어준다.
);
// 초기화하라
await videoController!.initialize();
setState(() {});
}
@override
Widget build(BuildContext context) {
if (videoController == null) {
return CircularProgressIndicator();
}
return AspectRatio(
// 비율 맞추는 위젯, 옵션
aspectRatio: videoController!.value.aspectRatio,
child: Stack(children: [
VideoPlayer(
videoController!,
),
_Controler(),
]),
);
}
}
class _Controler extends StatelessWidget {
const _Controler({super.key});
@override
Widget build(BuildContext context) {
return Container(
color: Colors.black.withOpacity(0.5),
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
renderIconButton(
onPressed: () {},
iconData: Icons.rotate_left,
),
renderIconButton(
onPressed: () {},
iconData: Icons.play_arrow,
),
renderIconButton(
onPressed: () {},
iconData: Icons.rotate_right,
),
],
),
);
}
Widget renderIconButton({
required VoidCallback onPressed,
required IconData iconData,
}) {
return IconButton(
onPressed: onPressed,
iconSize: 30.0,
color: Colors.white,
icon: Icon(iconData),
);
}
}해당 코드 로직입니다.!
Answer 2
video_call 플러그인 설치후 에러 발생
0
42
1
SDK 안드로이드 설치 질문!
0
56
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
90
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
64
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
51
1
플레이스토어
0
57
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
52
1
가이드라인 질문
0
55
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
75
1
emulator 실행 오류
0
91
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
68
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
41
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
51
1
video_call 플러그인 설치시 에러문제
0
61
1
children 안의 if 문에서 { } 못쓰는 이유?
0
46
1
이렇게 오류가 떠요
0
61
1
AppBar 사용했는데
0
60
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
54
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
61
1
Video Player 프로젝트에 대한 추가 질문
0
50
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
39
1
geolocator 오류때문에 개발진행이 불가능입니다
0
61
1
API 관련 이슈
0
83
2
VoidCallback 뒤에 null 연산자 표기에 관한 질문
0
44
1

