【发布时间】:2022-12-18 18:53:25
【问题描述】:
谁能告诉我如何使用这个最新的库来播放 flutter 根目录中资产文件夹中的单个音频文件? pub.dev 上这个库的代码示例相当难懂
【问题讨论】:
标签: flutter
谁能告诉我如何使用这个最新的库来播放 flutter 根目录中资产文件夹中的单个音频文件? pub.dev 上这个库的代码示例相当难懂
【问题讨论】:
标签: flutter
首先创建一个AudioPlayer类的实例。
final player = AudioPlayer();
然后在player.setSource方法中添加资产文件。
await player.setSource(AssetSource('sounds/coin.wav'));
更多Getting Started文档
【讨论】:
就像下面的 sn-p 一样简单。 click.mp3 位于 assets 文件夹中。
final player = AudioPlayer();
player.play(AssetSource('click.mp3')),
一个完整的例子:
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
debugShowCheckedModeBanner: false,
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
AudioPlayer? _player;
@override
void dispose() {
_player?.dispose();
super.dispose();
}
void _play() {
_player?.dispose();
final player = _player = AudioPlayer();
player.play(AssetSource('click.mp3'));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: const [
Text(
'Click on the play button to play a sound',
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _play,
tooltip: 'Play',
child: const Icon(Icons.volume_up),
),
);
}
}
【讨论】:
下面的代码块对我有用。
TextButton(
onPressed: () async {
final player = AudioPlayer();
player.play(AssetSource('note1.wav'));
},
child: Text('click me'),
),
当您按下点我按钮 note1.wav 音频文件将播放。
【讨论】: