[flutter] 플러터에서 path_provider를 이용하여 음악 저장하기

path_provider 패키지는 앱의 파일 시스템 경로를 가져오는 기능을 제공합니다. 따라서, 이를 활용하여 앱 내부나 외부에 음악 파일을 저장하고 엑세스할 수 있습니다.

우선, path_provider 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일을 열고 dependencies 섹션에 path_provider를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.0.4

이제 flutter pub get 명령을 실행하여 패키지를 다운로드합니다. 그런 다음, main.dart 파일에 다음과 같은 코드를 추가합니다.

import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:io';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Music Storage',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Future<void> saveMusic() async {
    Directory appDocDir = await getApplicationDocumentsDirectory();
    String appDocPath = appDocDir.path;
    File musicFile = File('$appDocPath/music.mp3');

    // TODO: 음악 파일 저장 로직을 추가하세요.

    print('음악이 저장되었습니다.');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Music Storage'),
      ),
      body: Center(
        child: ElevatedButton(
          child: Text('음악 저장'),
          onPressed: saveMusic,
        ),
      ),
    );
  }
}

위 코드에서 saveMusic 메서드에서 getApplicationDocumentsDirectory 함수를 사용하여 앱의 문서 디렉토리 경로를 가져옵니다. 그리고 File 클래스를 활용하여 해당 경로에 music.mp3 파일을 생성합니다. 해당 부분에 음악 파일 저장 로직을 구현하면 됩니다.

앱을 실행하고 ‘음악 저장’ 버튼을 클릭하면 saveMusic 메서드가 호출되고, 음악이 저장되었다는 메시지가 출력됩니다.

이렇게 path_provider 패키지를 사용하여 플러터에서 음악을 저장하는 방법을 알아보았습니다. 이를 응용하여 앱 내에서 다양한 파일을 저장하고 엑세스할 수 있습니다.

더 자세한 내용은 path_provider 패키지의 공식 문서를 참조하세요.