Skip to content

Commit

Permalink
Trying to make background work with visualizer
Browse files Browse the repository at this point in the history
  • Loading branch information
useronym committed Apr 11, 2024
1 parent 0caa1fa commit e2d2fe7
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 9 deletions.
12 changes: 6 additions & 6 deletions just_audio/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ environment:
flutter: ">=3.0.0"

dependencies:
just_audio_platform_interface: ^4.2.2
# just_audio_platform_interface:
# path: ../just_audio_platform_interface
just_audio_web: ^0.4.9
# just_audio_web:
# path: ../just_audio_web
# just_audio_platform_interface: ^4.2.2
just_audio_platform_interface:
path: ../just_audio_platform_interface
# just_audio_web: ^0.4.9
just_audio_web:
path: ../just_audio_web
audio_session: ^0.1.14
rxdart: '>=0.26.0 <0.28.0'
path: ^1.8.0
Expand Down
40 changes: 40 additions & 0 deletions just_audio_background/lib/just_audio_background.dart
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,24 @@ class _JustAudioPlayer extends AudioPlayerPlatform {
Future<SetPreferredPeakBitRateResponse> setPreferredPeakBitRate(
SetPreferredPeakBitRateRequest request) =>
_playerAudioHandler.customSetPreferredPeakBitRate(request);

@override
Future<StartVisualizerResponse> startVisualizer(
StartVisualizerRequest request) =>
_playerAudioHandler.customStartVisualizer(request);

@override
Future<StopVisualizerResponse> stopVisualizer(StopVisualizerRequest request) {
throw UnimplementedError("stopVisualizer() has not been implemented.");
}

@override
Stream<VisualizerWaveformCaptureMessage> get visualizerWaveformStream =>
_playerAudioHandler.customVisualizerWaveformStream;

@override
Stream<VisualizerFftCaptureMessage> get visualizerFftStream =>
_playerAudioHandler.customVisualizerFftStream;
}

class _PlayerAudioHandler extends BaseAudioHandler
Expand All @@ -388,6 +406,12 @@ class _PlayerAudioHandler extends BaseAudioHandler
List<int> _effectiveIndices = [];
List<int> _effectiveIndicesInv = [];

final StreamController<VisualizerWaveformCaptureMessage> _visualizerWaveformStreamController = StreamController<VisualizerWaveformCaptureMessage>();
Stream<VisualizerWaveformCaptureMessage> get customVisualizerWaveformStream => _visualizerWaveformStreamController.stream;

final StreamController<VisualizerFftCaptureMessage> _visualizerFftStreamController = StreamController<VisualizerFftCaptureMessage>();
Stream<VisualizerFftCaptureMessage> get customVisualizerFftStream => _visualizerFftStreamController.stream;

Future<AudioPlayerPlatform> get _player => _playerCompleter.future;
int? get index => _justAudioEvent.currentIndex;
MediaItem? get currentMediaItem => index != null &&
Expand Down Expand Up @@ -456,6 +480,14 @@ class _PlayerAudioHandler extends BaseAudioHandler
mediaItem.add(currentMediaItem!);
}
});

player.visualizerWaveformStream.listen((event) {
_visualizerWaveformStreamController.add(event);
});

player.visualizerFftStream.listen((event) {
_visualizerFftStreamController.add(event);
});
}

@override
Expand Down Expand Up @@ -581,6 +613,14 @@ class _PlayerAudioHandler extends BaseAudioHandler
SetPreferredPeakBitRateRequest request) async =>
await (await _player).setPreferredPeakBitRate(request);

Future<StartVisualizerResponse> customStartVisualizer(
StartVisualizerRequest request) async =>
await (await _player).startVisualizer(request);

Future<StopVisualizerResponse> customStopVisualizer(
StopVisualizerRequest request) async =>
await (await _player).stopVisualizer(request);

void _updateQueue() {
queue.add(sequence.map((source) => source.tag as MediaItem).toList());
}
Expand Down
6 changes: 3 additions & 3 deletions just_audio_background/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ topics:
- background

dependencies:
just_audio_platform_interface: ^4.2.2
# just_audio_platform_interface:
# path: ../just_audio_platform_interface
# just_audio_platform_interface: ^4.2.2
just_audio_platform_interface:
path: ../just_audio_platform_interface
audio_service: ^0.18.9
audio_session: ^0.1.14
flutter:
Expand Down

0 comments on commit e2d2fe7

Please sign in to comment.