반응형
flutter 에서 앨범 이미지 또는 비디오를 불러올 때 용량을 알고 싶은 경우!
https://pub.dev/packages/photo_manager
보통 위의 라이브러리로 앨범 리스트를 불러오면,
AssetPathEntity
해당 클래스 객체로 가져오게 되고,
AssetEntity photo
final File? file = await photo.file;
byte = (await file?.length() ?? 0) / (1024 * 1024);
위의 코드로 이미지 file 용량 mb 단위를 알 수 있다.
(보통 구글에 검색하면 위의 코드 나오는 듯!)
하지만,
iOS 에서는 대용량 파일을 불러오는 경우!
final File? file = await photo.file;
여기서 앱 crash 가 난다..
따라서 ios 인 경우 에는,
byte = ((await photo.originBytes)?.length ?? 0) / (1000 * 1000);
이렇게 해주었다. (iOS 인경우 byte 타입이 10진법이라고! 그래서 1000으로 맞춰줬다.)
그럼 위의걸로 안드로이드도 해주면 된다고 생각 할 수 있지만
용량이 큰 경우 안드로이드에서 crash 가 난다...
따라서 결론,
double byte = 0;
if (Platform.isAndroid) {
final File? file = await photo.file;
byte = (await file?.length() ?? 0) / (1024 * 1024);
} else {
byte = ((await photo.originBytes)?.length ?? 0) / (1000 * 1000);
}
이렇게 해주면
큰 용량 파일인 경우 app crash 없이 사이즈 값을 알 수있다.(mb 단위 입니다.)
반응형
'# 02 > Flutter' 카테고리의 다른 글
[Flutter] Platform View!! Native View 를 띄워 보아요! (0) | 2022.11.12 |
---|---|
[Flutter] WillPopScope 사용 시 iOS swipe 안돼요! (0) | 2022.11.10 |
[Flutter] LG 폰 Camera Flash 안꺼져요.. (0) | 2022.10.27 |
[Flutter] HTML \n 줄바꿈 처리 안되는 현상! (0) | 2022.10.27 |
[Flutter] Bluetooth Keyboard Error!! (0) | 2022.09.20 |