Initial Volume maxed out to 100% fixed

Android audio is not pausing on other audio source is running
This commit is contained in:
Kingkor Roy Tirtho 2022-07-12 01:35:10 +06:00
parent c898716b06
commit 9db99a07d0
4 changed files with 21 additions and 4 deletions

View File

@ -23,7 +23,6 @@ import 'package:spotube/provider/YouTube.dart';
import 'package:spotube/services/LinuxAudioService.dart';
import 'package:spotube/services/MobileAudioService.dart';
import 'package:spotube/utils/PersistedChangeNotifier.dart';
import 'package:spotube/utils/platform.dart';
import 'package:youtube_explode_dart/youtube_explode_dart.dart' hide Playlist;
import 'package:collection/collection.dart';
import 'package:spotube/extensions/list-sort-multiple.dart';
@ -80,6 +79,9 @@ class Playback extends PersistedChangeNotifier {
(() async {
cache = await Hive.openLazyBox<CacheTrack>("track-cache");
await player.setVolume(volume);
_subscriptions.addAll([
player.onPlayerStateChanged.listen(
(state) async {

View File

@ -1,13 +1,23 @@
import 'dart:async';
import 'package:audio_service/audio_service.dart';
import 'package:audio_session/audio_session.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:spotube/provider/Playback.dart';
class MobileAudioService extends BaseAudioHandler {
final Playback playback;
AudioSession? session;
MobileAudioService(this.playback) {
AudioSession.instance.then((s) {
session = s;
s.interruptionEventStream.listen((event) {
if (event.type != AudioInterruptionType.duck) {
playback.pause();
}
});
});
final _player = playback.player;
_player.onPlayerStateChanged.listen((state) async {
if (state != PlayerState.completed) {
@ -31,6 +41,7 @@ class MobileAudioService extends BaseAudioHandler {
}
void addItem(MediaItem item) {
session?.setActive(true);
mediaItem.add(item);
}
@ -44,7 +55,10 @@ class MobileAudioService extends BaseAudioHandler {
Future<void> seek(Duration position) => playback.seekPosition(position);
@override
Future<void> stop() => playback.stop();
Future<void> stop() async {
await session?.setActive(true);
await playback.stop();
}
@override
Future<void> skipToNext() async {

View File

@ -65,12 +65,12 @@ packages:
source: hosted
version: "0.1.1"
audio_session:
dependency: transitive
dependency: "direct main"
description:
name: audio_session
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.6+1"
version: "0.1.9"
audioplayers:
dependency: "direct main"
description:

View File

@ -64,6 +64,7 @@ dependencies:
dbus: ^0.7.3
audioplayers: ^1.0.1
introduction_screen: ^3.0.2
audio_session: ^0.1.9
dev_dependencies:
flutter_test: