Equalizer (nativ), Dolby-Atmos-Zugang und Auto-Wiedergabe bei Kopfhoerern
- Native Bruecke AudioEffectsBridge.kt: Equalizer + BassBoost + Virtualizer auf der Audio-Session des Players, inkl. System-Klangeffekt-Panel - Dart-Seite AudioEffects: Presets, Baender, Bass/Immersiv, persistiert - EqualizerScreen nach Vorlage inkl. Drehregler (CustomPainter) - Auto-Wiedergabe bei verbundenen Kopfhoerern (Klinke + Bluetooth) - MODIFY_AUDIO_SETTINGS im Manifest - Einstellungen: neuer Bereich "Ton" Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011snPXPafPC5i87o68H14W7
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
import 'package:audio_session/audio_session.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:melo/player/headphone_autoplay.dart';
|
||||
|
||||
void main() {
|
||||
group('shouldAutoPlay', () {
|
||||
test('startet bei verbundenem Bluetooth-Kopfhörer', () {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {AudioDeviceType.bluetoothA2dp},
|
||||
enabled: true,
|
||||
hasQueue: true,
|
||||
playing: false,
|
||||
),
|
||||
isTrue,
|
||||
);
|
||||
});
|
||||
|
||||
test('startet auch bei Klinken-Kopfhörern', () {
|
||||
for (final type in [
|
||||
AudioDeviceType.wiredHeadset,
|
||||
AudioDeviceType.wiredHeadphones,
|
||||
]) {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {type},
|
||||
enabled: true,
|
||||
hasQueue: true,
|
||||
playing: false,
|
||||
),
|
||||
isTrue,
|
||||
reason: '$type',
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('ignoriert andere Geräte wie den eingebauten Lautsprecher', () {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {AudioDeviceType.builtInSpeaker},
|
||||
enabled: true,
|
||||
hasQueue: true,
|
||||
playing: false,
|
||||
),
|
||||
isFalse,
|
||||
);
|
||||
});
|
||||
|
||||
test('startet nicht, wenn die Einstellung aus ist', () {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {AudioDeviceType.bluetoothA2dp},
|
||||
enabled: false,
|
||||
hasQueue: true,
|
||||
playing: false,
|
||||
),
|
||||
isFalse,
|
||||
);
|
||||
});
|
||||
|
||||
test('startet nicht ohne Warteschlange', () {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {AudioDeviceType.bluetoothA2dp},
|
||||
enabled: true,
|
||||
hasQueue: false,
|
||||
playing: false,
|
||||
),
|
||||
isFalse,
|
||||
);
|
||||
});
|
||||
|
||||
test('unterbricht nicht die bereits laufende Wiedergabe', () {
|
||||
expect(
|
||||
shouldAutoPlay(
|
||||
added: {AudioDeviceType.bluetoothA2dp},
|
||||
enabled: true,
|
||||
hasQueue: true,
|
||||
playing: true,
|
||||
),
|
||||
isFalse,
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user