要按顺序播放Flutter文件列表,你可以使用ListView.builder
构建一个列表视图,并使用IndexedStack
来管理播放状态。以下是一个示例代码:
import 'package:flutter/material.dart';
class FileListPlayer extends StatefulWidget {
@override
_FileListPlayerState createState() => _FileListPlayerState();
}
class _FileListPlayerState extends State {
List fileList = [
'file1.mp3',
'file2.mp3',
'file3.mp3',
// 添加更多文件...
];
int currentIndex = 0;
bool isPlaying = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('File List Player'),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: fileList.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(fileList[index]),
onTap: () {
setState(() {
currentIndex = index;
isPlaying = true;
});
},
);
},
),
),
Container(
padding: EdgeInsets.all(16),
child: Text(
'Now playing: ${fileList[currentIndex]}',
style: TextStyle(fontSize: 18),
),
),
Container(
padding: EdgeInsets.all(16),
child: ElevatedButton(
child: Text(isPlaying ? 'Pause' : 'Play'),
onPressed: () {
setState(() {
isPlaying = !isPlaying;
});
},
),
),
],
),
);
}
}
void main() {
runApp(MaterialApp(
home: FileListPlayer(),
));
}
这个示例创建了一个名为FileListPlayer
的StatefulWidget
,其中有一个文件列表(fileList
)和当前播放文件的索引(currentIndex
)。在构建方法中,使用ListView.builder
构建了一个列表视图,并在每个列表项上添加了点击事件来更新当前播放的文件索引。还添加了一个按钮来切换播放/暂停状态。
该示例是一个简单的演示,你可以根据自己的需求进行修改和扩展。
上一篇:按顺序播放多个时间线动画