如何在Xamarin.Forms中制作流畅的音频播放器?那是我尝试过的:
使用MediaPlayer播放音频文件。 Media-Player在其中使用 名为" AudioPlayer"。
该物业" AudioPosition"被绑定到滑块的值。
有一个取消令牌用于取消播放。
代码如下:
await Task.Run(
() =>
{
while (!ct.IsCancellationRequested)
{
this.AudioPosition = this.audioPlayer.CurrentPosition;
}
},
ct);
如果我播放音频文件一次,这会很有效。但是,如果我尝试重播该文件几次,则UI会越来越多地被阻止。似乎Task.Run()总是创建一个新任务,并且没有"配置"较旧的..?
我还尝试更新Device.InvokeOnMainThread()
中的值,如果我使用它,则Slider根本不会更新。
如何以平稳的方式播放文件时如何更新音频滑块?
答案 0 :(得分:0)
您是否尝试使用Timer而不是使用while循环的任务?
我认为您的应用是唯一控制播放的应用 - 因此您可以在播放暂停/停止事件处理程序/命令中处理计时器。
您提供的代码量不足以提供更高级的建议。