@@ -6,6 +6,7 @@ import "package:ciyue/database/app/app.dart";
66import "package:ciyue/main.dart" ;
77import "package:ciyue/services/dictionary.dart" ;
88import "package:dict_reader/dict_reader.dart" ;
9+ import "package:mime/mime.dart" ;
910import "package:path/path.dart" ;
1011import "package:path_provider/path_provider.dart" ;
1112
@@ -23,15 +24,20 @@ Future<void> playSoundOfWord(
2324 final player = AudioPlayer ();
2425
2526 for (final mddAudio in mddAudioList) {
26- final audio = await mddAudioResourceDao.getByKeyAndMddAudioID (
27+ final audios = await mddAudioResourceDao.getByKeyAndMddAudioID (
2728 "$word .spx" , mddAudio.id);
28- if (audio != null ) {
29+ for (final audio in audios! ) {
30+ if (setExtension (audio.key, "" ) != word) {
31+ continue ;
32+ }
33+
2934 final reader = DictReader (mddAudio.path);
3035 await reader.init (false );
3136
3237 final Uint8List data = await reader.readOne (audio.blockOffset,
3338 audio.startOffset, audio.endOffset, audio.compressedSize);
34- await player.setSourceBytes (data, mimeType: "audio/x-speex" );
39+ final mimeType = lookupMimeType (audio.key);
40+ await player.setSourceBytes (data, mimeType: mimeType);
3541
3642 await player.resume ();
3743
0 commit comments