[flutter] pretty_dio_logger를 사용한 소리 및 음악 재생

이번 글에서는 Flutter 애플리케이션에서 HTTP 요청을 보다 쉽게 디버깅하고 로깅하는 방법을 살펴볼 것입니다. pretty_dio_logger를 통해 HTTP 요청과 응답을 로깅함으로써 디버깅 과정을 보다 간편하게 할 수 있습니다.

pretty_dio_logger란?

pretty_dio_logger는 Dio 클라이언트의 네트워크 요청과 응답을 로깅하기 위한 Flutter 패키지입니다. 요청과 응답을 보기 좋고 이해하기 쉬운 형태로 출력하여 디버깅을 단순화합니다.

pretty_dio_logger 사용하기

먼저, pubspec.yaml 파일에 pretty_dio_logger 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  dio: ^4.0.0
  pretty_dio_logger: ^1.0.4

그 다음으로, Dio 클라이언트를 만들고 pretty_dio_logger를 연결합니다.

import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

void main() {
  final dio = Dio();

  dio.interceptors.add(PrettyDioLogger());
}

위 코드에서 PrettyDioLogger() 인스턴스를 Dio 클라이언트의 인터셉터에 추가하여 HTTP 요청 및 응답을 로깅할 수 있습니다.

예제: 음악 재생 및 pretty_dio_logger 적용

아래는 dio 패키지를 사용하여 음악 파일을 다운로드하고 재생하는 예제입니다.

import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

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

class MyApp extends StatelessWidget {
  final Dio dio = Dio();
  final AudioPlayer audioPlayer = AudioPlayer();

  MyApp() {
    dio.interceptors.add(PrettyDioLogger());
  }

  void _playMusic() async {
    final url = 'https://example.com/music.mp3';
    final response = await dio.get(url, options: Options(responseType: ResponseType.bytes));
    await audioPlayer.playBytes(response.data, isLocal: false);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Music Player')),
        body: Center(
          child: ElevatedButton(
            onPressed: _playMusic,
            child: Text('Play Music'),
          ),
        ),
      ),
    );
  }
}

위 예제에서 pretty_dio_logger를 적용하고, Dio를 사용하여 음악 파일을 가져와 audioplayers 패키지로 재생하는 방법을 보여줍니다.

결론

Flutter 애플리케이션에서 HTTP 요청 및 응답을 간편하게 로깅하고, 음악을 재생하는 방법에 대해 살펴보았습니다. pretty_dio_logger 패키지를 사용하여 네트워크 요청 및 응답을 로깅함으로써 디버깅 프로세스를 향상시킬 수 있습니다.