@@ -8,14 +8,16 @@ String toLrcTimestamp(int milliseconds) {
88 return '${minutes .toString ().padLeft (2 , '0' )}:${seconds .toString ().padLeft (2 , '0' )}.${ms .toString ().padLeft (2 , '0' )}' ;
99}
1010
11- String formatSyllableLyrics (List <dynamic > lines) {
11+ String formatSyllableLyrics (List <dynamic > lines, bool multiPersonWordByWord ) {
1212 final syncedLyrics = StringBuffer ();
1313
1414 for (final line in lines) {
1515 final timestamp = line['timestamp' ] as int ;
1616 syncedLyrics.write ('[${toLrcTimestamp (timestamp )}]' );
17- syncedLyrics.write (line['oppositeTurn' ] == true ? 'v2:' : 'v1:' );
1817
18+ if (multiPersonWordByWord) {
19+ syncedLyrics.write (line['oppositeTurn' ] == true ? 'v2:' : 'v1:' );
20+ }
1921 for (final syllable in line['text' ] as List <dynamic >) {
2022 final beginTs = '<${toLrcTimestamp (syllable ['timestamp' ] as int )}>' ;
2123 final endTs = '<${toLrcTimestamp (syllable ['endtime' ] as int )}>' ;
@@ -30,7 +32,7 @@ String formatSyllableLyrics(List<dynamic> lines) {
3032 syncedLyrics.write (endTs);
3133 }
3234
33- if (line['background' ] == true ) {
35+ if (line['background' ] == true && multiPersonWordByWord ) {
3436 syncedLyrics.write ('\n [bg:' );
3537 for (final syllable in line['backgroundText' ] as List <dynamic >) {
3638 final beginTs = '<${toLrcTimestamp (syllable ['timestamp' ] as int )}>' ;
@@ -72,7 +74,7 @@ String formatLyrics(String apiResponse) {
7274 final type = data['type' ] as String ;
7375
7476 if (type == 'Syllable' ) {
75- return formatSyllableLyrics (lines);
77+ return formatSyllableLyrics (lines, false );
7678 } else if (type == 'Line' ) {
7779 return formatLineLyrics (lines);
7880 }
@@ -81,7 +83,7 @@ String formatLyrics(String apiResponse) {
8183 } catch (e) {
8284 try {
8385 final data = json.decode (apiResponse) as List <dynamic >;
84- return formatSyllableLyrics (data);
86+ return formatSyllableLyrics (data, false );
8587 } catch (e) {
8688 return apiResponse;
8789 }
0 commit comments