提交 70c0b90d authored 作者: yueweilu's avatar yueweilu

多条播放依次时 显示时间问题

上级 5c24764d
...@@ -4,5 +4,5 @@ keyPassword=123456 ...@@ -4,5 +4,5 @@ keyPassword=123456
keyAlias=zijing keyAlias=zijing
#storeFile=/Users/apple/zijiing_key.jks storeFile=/Users/apple/zijiing_key.jks
storeFile=zijiing_key.jks #storeFile=zijiing_key.jks
\ No newline at end of file \ No newline at end of file
...@@ -367,11 +367,15 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -367,11 +367,15 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 本地音频 // 本地音频
audioPlayer.setFilePath(audioModel.path); audioPlayer.setFilePath(audioModel.path);
audioPlayer.play(); StreamSubscription? positionSubscription;
audioPlayer.positionStream.listen((position) { positionSubscription =audioPlayer.positionStream.listen((position) {
String temp = Tools.formatDuration(position); String temp = Tools.formatDuration(position);
Console.log('播放时间---------------------$temp'); Console.log('播放时间---------------------$temp------id-------------${audioModel.path}');
audioModel.currentDuration = temp; audioModel.currentDuration = temp;
if(position >= audioPlayer.duration!){
Console.log('---------播放结束-----------');
positionSubscription?.cancel();
}
update(); update();
}); });
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
......
...@@ -14,6 +14,8 @@ class NoteController extends GetxController { ...@@ -14,6 +14,8 @@ class NoteController extends GetxController {
late TextEditingController searchInput = TextEditingController(); late TextEditingController searchInput = TextEditingController();
just_audio.AudioPlayer audioPlayer = just_audio.AudioPlayer();
final int _limit = 10; final int _limit = 10;
int _page = 1; int _page = 1;
bool _noMore = false; bool _noMore = false;
...@@ -39,6 +41,7 @@ class NoteController extends GetxController { ...@@ -39,6 +41,7 @@ class NoteController extends GetxController {
void onClose() { void onClose() {
refreshController.dispose(); refreshController.dispose();
searchInput.dispose(); searchInput.dispose();
audioPlayer.dispose();
super.onClose(); super.onClose();
} }
...@@ -47,6 +50,47 @@ class NoteController extends GetxController { ...@@ -47,6 +50,47 @@ class NoteController extends GetxController {
update(); update();
} }
void delNotes({required String notesId,required String bookId}) async {
final result = await MineAPI.delNotes(notesId: notesId, bookId: bookId);
if (result){
Toast.show('删除笔记成功');
onRefresh();
}
}
// 播放音频
void playAudio(MediaModel mediaModel){
if(audioPlayer.playerState.playing){
audioPlayer.stop();
mediaModel.currentDuration = '0:00:00';
// if(currentPlayMediaModel.id == mediaModel.id){
// return;
// }
}
// 本地音频
if (mediaModel.id == 0){
audioPlayer.setFilePath(mediaModel.path);
}
// 远程音频
else {
audioPlayer.setUrl(mediaModel.content??'');
}
audioPlayer.play();
StreamSubscription? positionSubscription;
positionSubscription =audioPlayer.positionStream.listen((position) {
String temp = Tools.formatDuration(position);
Console.log('播放时间---------------------$temp------id-------------${mediaModel.id}');
mediaModel.currentDuration = temp;
if(position >= audioPlayer.duration!){
Console.log('---------播放结束-----------');
positionSubscription?.cancel();
}
update();
});
// currentPlayMediaModel = mediaModel;
}
/// 搜全文 /// 搜全文
Future<void> searchAll([bool isRefresh = false]) async { Future<void> searchAll([bool isRefresh = false]) async {
if (isRefresh) _searchPage = 1; if (isRefresh) _searchPage = 1;
......
...@@ -111,7 +111,15 @@ class _ReadNotePageState extends State<ReadNotePage> { ...@@ -111,7 +111,15 @@ class _ReadNotePageState extends State<ReadNotePage> {
} }
// 笔记 // 笔记
else if(model.types == 3){ else if(model.types == 3){
return BuildNote(model: model,); return BuildNote(
model: model,
onTapAudio: (MediaModel mediaModel){
controller.playAudio(mediaModel);
},
onTapDel: (){
controller.delNotes(notesId: model.notesId.toString(), bookId:widget.bookDetailModel.bookId.toString());
},
);
} }
}, },
itemCount: controller.notes.length, itemCount: controller.notes.length,
......
...@@ -157,10 +157,15 @@ class UserEditNoteController extends GetxController { ...@@ -157,10 +157,15 @@ class UserEditNoteController extends GetxController {
audioPlayer.setUrl(mediaModel.content??''); audioPlayer.setUrl(mediaModel.content??'');
} }
audioPlayer.play(); audioPlayer.play();
audioPlayer.positionStream.listen((position) { StreamSubscription? positionSubscription;
positionSubscription =audioPlayer.positionStream.listen((position) {
String temp = Tools.formatDuration(position); String temp = Tools.formatDuration(position);
Console.log('播放时间---------------------$temp'); Console.log('播放时间---------------------$temp------id-------------${mediaModel.id}');
mediaModel.currentDuration = temp; mediaModel.currentDuration = temp;
if(position >= audioPlayer.duration!){
Console.log('---------播放结束-----------');
positionSubscription?.cancel();
}
update(); update();
}); });
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
......
...@@ -49,10 +49,15 @@ class UserNotesDesController extends GetxController { ...@@ -49,10 +49,15 @@ class UserNotesDesController extends GetxController {
audioPlayer.setUrl(mediaModel.content??''); audioPlayer.setUrl(mediaModel.content??'');
} }
audioPlayer.play(); audioPlayer.play();
audioPlayer.positionStream.listen((position) { StreamSubscription? positionSubscription;
positionSubscription =audioPlayer.positionStream.listen((position) {
String temp = Tools.formatDuration(position); String temp = Tools.formatDuration(position);
Console.log('播放时间---------------------$temp'); Console.log('播放时间---------------------$temp------id-------------${mediaModel.id}');
mediaModel.currentDuration = temp; mediaModel.currentDuration = temp;
if(position >= audioPlayer.duration!){
Console.log('---------播放结束-----------');
positionSubscription?.cancel();
}
update(); update();
}); });
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
......
library user_notes_des; library user_notes_des;
import 'dart:async';
import 'package:easy_refresh/easy_refresh.dart'; import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_book/widgets/index.dart'; import 'package:flutter_book/widgets/index.dart';
......
...@@ -203,7 +203,7 @@ class BuildNote extends StatelessWidget { ...@@ -203,7 +203,7 @@ class BuildNote extends StatelessWidget {
}, },
child: Image.asset('assets/images/audio.png') child: Image.asset('assets/images/audio.png')
), ),
Text('0:00/${mediaModel.duration}',style: TextStyle(fontSize: 10.w,height: 1.4,color: Colours.c9),) Text('${mediaModel.currentDuration}/${mediaModel.duration}',style: TextStyle(fontSize: 10.w,height: 1.4,color: Colours.c9),)
], ],
), ),
), ),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论