Как воспроизвести файл MP3 с определенной позиции в Xamarin.Forms с помощью CrossMediaManager - PullRequest
0 голосов
/ 08 июля 2020

Я загружаю файлы в локальное хранилище в своем приложении 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);
   }

1 Ответ

0 голосов
/ 09 июля 2020

Это не может вызвать CrossMediaManager.Current.SeekTo сразу после CrossMediaManager.Current.Play в CrossMediaManager .

Это означает, что нам лучше вызывать SeekTo после того, как игрок имеет IsPlaying статус.

Следовательно, может разделять их, чтобы вызывать их следующим образом:

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));
    }
} 
...