Я хотел протестировать этот пакет .NET MAUI.
https://github.com/jfversluis/Plugin.Maui.Audio
Но теперь у меня возникла проблема: если я продолжаю воспроизводить звуки покемонов, я получаю сообщение об ошибке
"Переполнение локальной справочной таблицы (max=512)"
Как правильно избавиться от аудио поток проигрывателя и памяти после завершения воспроизведения звука?
Мне нужно решение, позволяющее мне воспроизводить звук всякий раз, когда я нажимаю (вызываю) эту функцию. И не беспокойтесь о переполнении ссылок
var audioBytes = await this._client.GetByteArrayAsync(pokemonToTalk.Cries.CrySrc);
MemoryStream memoryStream = new(audioBytes);
this.PlayAutioAsync(memoryStream);
await memoryStream.DisposeAsync();
-------------------------------------------------------------------------
public void PlayAutioAsync(MemoryStream m)
{
var audioPlayer = audioManager.CreatePlayer(m);
audioPlayer.Play();
}
Чтобы внести ясность в мой проект, я хочу, чтобы он запускал выборку каждый раз, когда запускается моя функция, поскольку пользователь получает новый набор случайных покемонов после того, как один из них закончил говорить.
Если необходимо, это класс pokemontotalk:
public class PokemonDTO
{
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("sprites")]
public spritesDTO Sprites { get; set; }
[JsonPropertyName("cries")]
public CriesDTO Cries { get; set; }
}
public class spritesDTO
{
[JsonPropertyName("front_default")]
public string FrontImgString { get; set; }
[JsonPropertyName("back_default")]
public string BackImgString { get; set; }
}
public class CriesDTO
{
[JsonPropertyName("latest")]
public string CrySrc { get; set; }
}