Flutter 如何在特定时间播放和停止音频?
Flutter how to play and stop audio at specific time?
我有一个使用 just_audio 插件的音频播放器应用程序。如何在特定时间播放和停止音频?
例如,我有一个 20 分钟长的音频文件。我希望当我按下播放按钮时,音频将在第 5 分钟 运行 并在第 8 分钟停止。
这是我的代码
void _setInitialPlaylist() async {
final myAudio1 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.05.00, stop at 00.08.00
final myAudio2 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.09.00, stop at 00.12.00
final myAudio3 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.15.00, stop at 00.19.00
_playlist = ConcatenatingAudioSource(children: [
AudioSource.uri(myAudio1, tag: 'myAudio1'),
AudioSource.uri(myAudio2, tag: 'myAudio2'),
AudioSource.uri(myAudio3, tag: 'myAudio3'),
]);
await _audioPlayer.setAudioSource(_playlist);
}
您也可以使用seek方法来寻找想要的时间,然后开始计时,计时结束后暂停。
int result = await audioPlayer.seek(Duration(minutes: 5));
Timer(Duration(minutes: 3), () {
int result = await audioPlayer.pause();
});
来自文档:
await player.setClip(start: Duration(seconds: 10), end: Duration(seconds: 20));
await player.play(); // Waits until the clip has finished playing
在你的情况下它变成:
await player.setClip(start: Duration(minutes: 5), end: Duration(minutes: 8));
await player.play();
我有一个使用 just_audio 插件的音频播放器应用程序。如何在特定时间播放和停止音频?
例如,我有一个 20 分钟长的音频文件。我希望当我按下播放按钮时,音频将在第 5 分钟 运行 并在第 8 分钟停止。
这是我的代码
void _setInitialPlaylist() async {
final myAudio1 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.05.00, stop at 00.08.00
final myAudio2 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.09.00, stop at 00.12.00
final myAudio3 = Uri.parse("asset:///audio/myAudio.mp3"); // I want this audio play at 00.15.00, stop at 00.19.00
_playlist = ConcatenatingAudioSource(children: [
AudioSource.uri(myAudio1, tag: 'myAudio1'),
AudioSource.uri(myAudio2, tag: 'myAudio2'),
AudioSource.uri(myAudio3, tag: 'myAudio3'),
]);
await _audioPlayer.setAudioSource(_playlist);
}
您也可以使用seek方法来寻找想要的时间,然后开始计时,计时结束后暂停。
int result = await audioPlayer.seek(Duration(minutes: 5));
Timer(Duration(minutes: 3), () {
int result = await audioPlayer.pause();
});
来自文档:
await player.setClip(start: Duration(seconds: 10), end: Duration(seconds: 20));
await player.play(); // Waits until the clip has finished playing
在你的情况下它变成:
await player.setClip(start: Duration(minutes: 5), end: Duration(minutes: 8));
await player.play();