aslında
pub devin yaptıgı eklenti bu iş için perfect_volume_control: ^1.0.5 kontrollu bir sekilde kullanirsan. Flutter Uygulamasında Donanım Ses Düğmesine basıldığını dinleyebilir ve hangi düğmeye basıldığını, Ses Açma veya Ses kısma olarak belirleyebilirsiniz.
örnek olarak kendi yukarda veridigim linkte Xhambis tarafından örnek bir kodlama gerçekleştirilmiştir
Öncelikle pubspec.yaml dosyasına aşağıdaki satırları ekleyerek
perfect_volume_control Flutter paketini projenize ekleyin:
dependencies: flutter: sdk: flutter perfect_volume_control: ^1.0.5
perfect_volume_control paketi, mevcut ses seviyesini almanızı, ses seviyesini ayarlamanızı ve ses değişimini dinlemenizi kolaylaştıracaktır. Yukarı veya aşağı ses düğmesine basmayı algılamak için ses değiştirme dinleyicisini kullanacağız.
Flutter'da Ses Düğmesine Basıldığında Nasıl Dinlenir? import 'package:perfect_volume_control/perfect_volume_control.dart';
PerfectVolumeControl.stream.listen((volume) { //volume button is pressed, // this listener will be triggeret 3 times at one button press
});Bu dinleyici, sistem sesi, müzik sesi ve alarm sesi için üç kez tetiklenecektir. Ses veya ses kısma düğmesinden hangi düğmeye basıldığını belirlemek için birkaç ince ayar yaptık. Dikkatli olun, kodumuzda, ses seviyesi UI'sinden manuel olarak artırma, ses düğmesine basmak olarak alınacaktır.
Hangi Ses Yukarı/Aşağı Düğmesine Basıldığı Nasıl Anlaşılır?
Aşağıdaki Flutter Uygulaması örnek kodunun tamamına bakın, ses seviyesi değiştirildiğinde ses düğmesi algılamasını tespit ettik.
import 'package:flutter/material.dart';
import 'package:perfect_volume_control/perfect_volume_control.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Home()
);
}
}
class Home extends StatefulWidget {
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
double currentvol = 0.5;
String buttontype = "none";
@override
void initState() {
Future.delayed(Duration.zero,() async {
currentvol = await PerfectVolumeControl.getVolume();
//get current volume
setState(() {
//refresh UI
});
});
PerfectVolumeControl.stream.listen((volume) {
/ses düğmesine basılır
// bu dinleyici tek tuşa basıldığında 3 kez tetiklenecek
if(volume != currentvol){ //düğme tipi kontrolünü yalnızca bir kez yürütün
if(volume > currentvol){ //yeni ses daha büyükse, yukarı düğmesi
buttontype = "up";
}else{ // aşağı düğme
buttontype = "down";
}
}
setState(() {
currentvol = volume;
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Ses Düğmesine Bas"),
backgroundColor: Colors.redAccent,
),
body: Container(
padding: EdgeInsets.all(20),
child: Column(
children: [
Text("Mevcut Hacim : $currentvol"),
Divider(),
buttontype == "none"?
Text("Henüz hiçbir düğmeye basılmadı ."):
Text(buttontype == "up"? "Ses Açma Düğmesine Basıldığında ":
"Ses Kısma Düğmesine Basıldığında ",
style: TextStyle(fontSize: 20),)
],
)
)
);
}
}Sesi Aç düğmesine Basıldığında. Ses Kısma düğmesine basıldığında.
Bu şekilde, Flutter Uygulamasında Donanım Ses Düğmesine basıldığını dinleyebilir ve hangi düğmeye basıldığını, Ses Açma veya Ses kısma olarak belirleyebilirsiniz.