如何使用 CrossMediaManager 从 Xamarin.Forms 中的特定位置播放 MP3 文件

How to Play MP3 file from certian position in Xamarin.Forms using CrossMediaManager

我正在将文件下载到我的 Xamarin Forms 应用程序中的本地存储。我正在使用 CrossMediaManager 来播放那些存储在本地的 mp3 文件。问题是播放器没有从某个位置开始播放音频。它总是从零开始播放。

我正在使用以下代码但没有帮助。我也试过将媒体文件加入队列并播放它们,但没有帮助。

if (Helper.FileExists(filePath))
   {
      var position = TimeSpan.FromSeconds(AyasAudios[AyaNumber].StartingPoint);
      Debug.WriteLine("starting point: " + AyasAudios[AyaNumber].StartingPoint + " position: " + position);
      await CrossMediaManager.Current.Play(new FileInfo(filePath));
      await CrossMediaManager.Current.SeekTo(position);
   }

无法在 CrossMediaManager 中的 CrossMediaManager.Current.Play 之后立即调用 CrossMediaManager.Current.SeekTo

这意味着我们最好在玩家处于 IsPlaying 状态后调用 SeekTo

因此可以将它们分开来调用它们,如下所示:

private async void Button_Clicked_Play(object sender, EventArgs e)
{
    CrossMediaManager.Current.Play("https://ia800806.us.archive.org/15/items/Mp3Playlist_555/AaronNeville-CrazyLove.mp3");
}

private async void Button_Clicked_SeekTo(object sender, EventArgs e)
{
    if (CrossMediaManager.Current.IsPlaying())
    {
        await CrossMediaManager.Current.SeekTo(TimeSpan.FromSeconds(60));
    }
}