[flutter] 플러터에서 path_provider를 이용하여 동영상 저장하기

이번 글에서는 Flutter에서 path_provider 패키지를 사용하여 동영상을 저장하는 방법을 알아보겠습니다.

1. path_provider 패키지 추가하기

먼저, pubspec.yaml 파일에 path_provider 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가해주세요.

dependencies:
  flutter:
    sdk: flutter

  path_provider: ^2.0.1

변경 사항을 적용하기 위해 터미널에서 flutter pub get 명령을 실행해주세요.

2. 동영상 저장하기

이제 동영상을 저장할 코드를 작성해보겠습니다. 먼저 path_provider 패키지를 import해주세요.

import 'package:path_provider/path_provider.dart';

다음으로, 동영상 파일을 저장하는 함수를 작성합니다.

Future<String> saveVideo() async {
  final directory = await getApplicationDocumentsDirectory();
  final path = '${directory.path}/my_video.mp4';

  // 동영상 파일을 원하는 경로에 저장하기
  final videoFile = File(path);
  // 동영상 파일을 가져와서 저장하는 로직을 작성합니다.

  return path;
}

saveVideo 함수에서는 getApplicationDocumentsDirectory() 함수를 호출하여 동영상 파일을 저장할 디렉토리를 가져옵니다. 그리고 원하는 경로에 동영상 파일을 저장한 후, 해당 파일의 경로를 반환합니다.

이제 동영상을 저장하는 기능을 원하는 곳에서 호출하여 사용할 수 있습니다.

String videoPath = await saveVideo();
print('동영상이 저장된 경로: $videoPath');

위처럼 함수를 호출하여 동영상이 저장된 경로를 얻을 수 있습니다.

3. 권한 설정하기

위의 예제 코드에서 동영상을 저장할 디렉토리에 접근하기 위해서는 저장소 접근 권한(WRITE_EXTERNAL_STORAGE)을 설정해야 합니다. AndroidManifest.xml 파일에 다음과 같이 권한을 추가해주세요.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  
    <application>
        // ...
    </application>

</manifest>

iOS에서는 권한 설정이 필요하지 않습니다.

마무리

이제 path_provider 패키지를 사용하여 Flutter 앱에서 동영상을 저장하는 방법을 알아보았습니다. 앱에서 동영상 저장 기능을 추가할 때 참고하시기 바랍니다.