【发布时间】:2020-02-20 17:55:31
【问题描述】:
我有一个包含标题和歌曲编号列表的 json 文件。我制作了一个列表视图并使用 onTap 和 Navigator.push 将 det 数据发送到详细信息页面。将数据显示为文本效果很好,但我想播放本地资产中的歌曲。我使用 audioplayers 包,如果我对歌曲名进行硬编码,它可以工作,但我想将歌曲名传递给 play 函数来播放所选歌曲。我的 det 详细信息页面代码如下所示(有点简化和缩短):
import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';
class SongDetail extends StatelessWidget {
final String title;
final String songNumber;
final player = AudioCache();
SongDetail(this.title, this.songNumber);
@override
Widget build(BuildContext context) {
Widget titleSection = Container(
decoration: BoxDecoration(
color: Colors.blueGrey[50],
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 20.0),
child: IconButton(icon: Icon(
Icons.play_circle_filled,
size: 40.0),
onPressed: () { player.play('1.mp3'); },
),
),
我可以使用 Text(this.title) 和 Text(this.songNumber) 将标题和 songNumber 显示为文本。但是如何将 songNumber 中的数据获取到 onPressed 函数而不是硬编码的 '1.mp3' 中?
请记住,我是一个新手,可能已经完成了一项艰巨的任务,但我喜欢挑战 :)
【问题讨论】:
标签: flutter audio local assets playback