Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(example): add invalid asset, small refactor, colored source buttons #1445

Merged
merged 2 commits into from
Mar 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/audioplayers/example/assets/invalid.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This represents an invalid audio file.
4 changes: 2 additions & 2 deletions packages/audioplayers/example/integration_test/lib_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ void main() {
),
if (features.hasAssetSource)
LibSourceTestData(
source: AssetSource(asset1),
source: AssetSource(wavAsset),
duration: const Duration(seconds: 1, milliseconds: 068),
),
if (features.hasAssetSource)
LibSourceTestData(
source: AssetSource(asset2),
source: AssetSource(mp3Asset),
duration: const Duration(minutes: 1, seconds: 34, milliseconds: 119),
),
];
Expand Down
29 changes: 21 additions & 8 deletions packages/audioplayers/example/lib/tabs/sources.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ final m3u8StreamUrl = useLocalServer
: 'https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/hls/nonuk/sbr_low/ak/bbc_radio_one.m3u8';
const mpgaStreamUrl = 'https://timesradio.wireless.radio/stream';

const asset1 = 'laser.wav';
const asset2 = 'nasa_on_a_mission.mp3';
const wavAsset = 'laser.wav';
const mp3Asset = 'nasa_on_a_mission.mp3';
const invalidAsset = 'invalid.txt';

class SourcesTab extends StatefulWidget {
final AudioPlayer player;
Expand Down Expand Up @@ -60,6 +61,7 @@ class _SourcesTabState extends State<SourcesTab>
required String subtitle,
required Source source,
Key? setSourceKey,
Color? buttonColor,
Key? playKey,
}) =>
_SourceTile(
Expand All @@ -69,6 +71,7 @@ class _SourcesTabState extends State<SourcesTab>
subtitle: subtitle,
setSourceKey: setSourceKey,
playKey: playKey,
buttonColor: buttonColor,
);

Future<void> _setSourceBytesAsset(
Expand Down Expand Up @@ -140,18 +143,18 @@ class _SourcesTabState extends State<SourcesTab>
setSourceKey: const Key('setSource-asset-wav'),
title: 'Asset 1',
subtitle: 'laser.wav',
source: AssetSource(asset1),
source: AssetSource(wavAsset),
),
_createSourceTile(
setSourceKey: const Key('setSource-asset-mp3'),
title: 'Asset 2',
subtitle: 'nasa.mp3',
source: AssetSource(asset2),
source: AssetSource(mp3Asset),
),
_SourceTile(
setSource: () => _setSourceBytesAsset(_setSource, asset: asset1),
setSource: () => _setSourceBytesAsset(_setSource, asset: wavAsset),
setSourceKey: const Key('setSource-bytes-local'),
play: () => _setSourceBytesAsset(_play, asset: asset1),
play: () => _setSourceBytesAsset(_play, asset: wavAsset),
title: 'Bytes - Local',
subtitle: 'laser.wav',
),
Expand All @@ -168,6 +171,14 @@ class _SourcesTabState extends State<SourcesTab>
play: () => _setSourceFilePicker(_play),
title: 'Device File',
subtitle: 'Pick local file from device',
buttonColor: Colors.green,
),
_createSourceTile(
setSourceKey: const Key('setSource-asset-invalid'),
title: 'Invalid Asset',
subtitle: 'invalid.txt',
source: AssetSource(invalidAsset),
buttonColor: Colors.red,
),
],
);
Expand All @@ -184,6 +195,7 @@ class _SourceTile extends StatelessWidget {
final String? subtitle;
final Key? setSourceKey;
final Key? playKey;
final Color? buttonColor;

const _SourceTile({
required this.setSource,
Expand All @@ -192,6 +204,7 @@ class _SourceTile extends StatelessWidget {
this.subtitle,
this.setSourceKey,
this.playKey,
this.buttonColor,
});

@override
Expand All @@ -207,14 +220,14 @@ class _SourceTile extends StatelessWidget {
key: setSourceKey,
onPressed: setSource,
icon: const Icon(Icons.upload_file),
color: Theme.of(context).primaryColor,
color: buttonColor ?? Theme.of(context).primaryColor,
),
IconButton(
key: playKey,
tooltip: 'Play',
onPressed: play,
icon: const Icon(Icons.play_arrow),
color: Theme.of(context).primaryColor,
color: buttonColor ?? Theme.of(context).primaryColor,
),
],
),
Expand Down