Flutter ile telefon hafızasından ses dosyası oynatmak için Audioplayer adlı bir paketi kullanabilirsiniz. Bu paket, Android ve iOS'ta ses çalmak için uygun bir çözümdür.
İlk olarak, Audioplayer paketini projenize eklemelisiniz. Bunun için pubspec.yaml dosyanıza aşağıdaki satırları ekleyebilirsiniz:
Daha sonra, aşağıdaki gibi bir kod örneği kullanarak ses dosyasını çalabilirsiniz:
Bu örnekte, AudioPlayerPage adlı bir sayfa oluşturduk ve filePath adlı bir parametre alarak bir ses dosyasının yolunu aldık. initState() yöntemi sayfa yüklendiğinde çağrılır ve play() yöntemiyle ses dosyası çalınır. dispose() yöntemi sayfa kapatıldığında çağrılır ve ses dosyası durdurulur. Son olarak, build() yöntemi, bir Scaffold ve bir Center bileşeni döndürerek basit bir arayüz oluşturur.
Bu örneği, ses dosyasının yolunu parametre olarak vererek kullanabilirsiniz:
Yukarıdaki örnek, AudioPlayerPage sayfasını açar ve /sdcard/music/song.mp3 adlı bir ses dosyasını çalar. Tabii ki, gerçek bir uygulamada, kullanıcının seçtiği bir dosya yolunu kullanmanız gerekecektir.
İlk olarak, Audioplayer paketini projenize eklemelisiniz. Bunun için pubspec.yaml dosyanıza aşağıdaki satırları ekleyebilirsiniz:
Kod:
dependencies:
audioplayer: ^0.7.0
Kod:
import 'package:flutter/material.dart';
import 'package:audioplayer/audioplayer.dart';
class AudioPlayerPage extends StatefulWidget {
final String filePath;
AudioPlayerPage({this.filePath});
@override
_AudioPlayerPageState createState() => _AudioPlayerPageState();
}
class _AudioPlayerPageState extends State<AudioPlayerPage> {
AudioPlayer audioPlayer = AudioPlayer();
@override
void initState() {
super.initState();
play();
}
void play() async {
await audioPlayer.play(widget.filePath, isLocal: true);
}
@override
void dispose() {
audioPlayer.stop();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Ses Dosyası')),
body: Center(
child: Text('Ses dosyası oynatılıyor...'),
),
);
}
}
Bu örneği, ses dosyasının yolunu parametre olarak vererek kullanabilirsiniz:
Kod:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AudioPlayerPage(filePath: '/sdcard/music/song.mp3'),
),
);