Flutter - Dart

Audio - Play/Pause

main.dart

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: AudioPlayerPage(),
    );
  }
}

class AudioPlayerPage extends StatefulWidget {
  @override
  _AudioPlayerPageState createState() => _AudioPlayerPageState();
}

class _AudioPlayerPageState extends State<AudioPlayerPage> {
  late AudioPlayer audioPlayer;
  String audioUrl = 'https://hi-service.kz/audio/audio01.mp3';
  PlayerState playerState = PlayerState.stopped;

  @override
  void initState() {
    super.initState();
    audioPlayer = AudioPlayer();
    audioPlayer.onPlayerStateChanged.listen((PlayerState state) {
      setState(() {
        playerState = state;
      });
    });
  }

  Future<void> playAudio() async {
    await audioPlayer.play(UrlSource(audioUrl));
    setState(() {
      playerState = PlayerState.playing;
    });
  }

  Future<void> pauseAudio() async {
    await audioPlayer.pause();
    setState(() {
      playerState = PlayerState.paused;
    });
  }

  @override
  void dispose() {
    audioPlayer.stop();
    audioPlayer.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Audio Player'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Image.network(
              'https://hi-service.kz/audio/image-audio.png',
              width: 300,
              height: 300,
            ),
            SizedBox(height: 20),
            if (playerState == PlayerState.playing)
              IconButton(
                icon: Icon(Icons.pause),
                onPressed: pauseAudio,
                iconSize: 55,
              ),
            if (playerState == PlayerState.paused ||
                playerState == PlayerState.stopped)
              IconButton(
                icon: Icon(Icons.play_arrow),
                onPressed: playAudio,
                iconSize: 55,
              ),
          ],
        ),
      ),
    );
  }
}