按照以下说明进行操作: https://codingwithjoe.com/playing-audio-from-the-web-and-http/(使用他的示例和AudioProvider类)
我一直在使用:
audioplayer: ^0.8.1
audioplayer_web: ^0.7.1
播放来自https链接的音频。
该问题具有一些奇怪的不一致效果。 -播放少量音频后,即使加载了新网址,它仍会继续播放相同的音频 -播放很少的音频后,声音听起来很奇怪,就像用其他音频切掉了一部分一样。
什么是好的音频播放器可以接受颤振的URL链接,从而产生一致的结果?
答案 0 :(得分:1)
示例中提供的音频播放器效果很好,并且功能不错。从您对我的描述来看,播放声音时似乎没有关闭会话。似乎您正在堆叠会引起奇怪声音的声音。
然后必须关闭实例。即使文章已经过时(2018年3月),音频播放器也得到了进一步发展。在此处查看其官方指南:
https://pub.dev/packages/audioplayer
这是audioplayer 0.8.1
版本,而不是3.0或其他版本。
文档示例:
Instantiate an AudioPlayer instance
//...
AudioPlayer audioPlugin = AudioPlayer();
//...
播放器控件:
audioPlayer.play(url);
audioPlayer.pause();
audioPlayer.stop();
状态和当前位置:
//...
_positionSubscription = audioPlayer.onAudioPositionChanged.listen(
(p) => setState(() => position = p)
);
_audioPlayerStateSubscription = audioPlayer.onPlayerStateChanged.listen((s) {
if (s == AudioPlayerState.PLAYING) {
setState(() => duration = audioPlayer.duration);
} else if (s == AudioPlayerState.STOPPED) {
onComplete();
setState(() {
position = duration;
});
}
}, onError: (msg) {
setState(() {
playerState = PlayerState.stopped;
duration = new Duration(seconds: 0);
position = new Duration(seconds: 0);
});
});
就像我说的那样,大多数音频插件都以实例的单例模式运行。要提供奇怪的效果,您必须在同一实例中加载下一首歌曲,不要打开另一个新实例,也不会得到任何奇怪的效果。
如果要切换到其他音频播放器,则可以在应用程序项目中使用的另一个出色的播放器如下:
https://pub.dev/packages/audio_manager#-readme-tab-
希望有帮助。