Я использую MediaPlaybackList для «потоковой» передачи аудиоданных, поступающих через Bluetooth, в виде байта [] с фиксированным интервалом времени.Согласно документации MS, MediaPlaybackList - это воспроизведение без пропусков между аудиосэмплами.Но в моем случае при переходе к следующему аудиосэмплу у меня появляется треск и пропасть.
byte[] audioContent = new byte[audioLength];
chatReader.ReadBytes(audioContent);
MediaPlaybackItem mediaPlaybackItem = new MediaPlaybackItem(MediaSource.CreateFromStream(new MemoryStream(audioContent).AsRandomAccessStream(), "audio/mpeg"));
playbackList.Items.Add(mediaPlaybackItem);
if (_mediaPlayerElement.MediaPlayer.PlaybackSession.PlaybackState != MediaPlaybackState.Playing)
{
_mediaPlayerElement.MediaPlayer.Play(); ;
}
Как я могу добиться по-настоящему «пропускающего» потокового аудио, используя метод, подобный этому?
Кроме того, я попытался записать свой поток в файл в реальном времени, так как данные поступают просточтобы увидеть, есть ли треск или разрыв.Он воспроизводится из файла, к которому байты добавляются без каких-либо ошибок или пробелов.
using (var stream = await playbackFile.OpenStreamForWriteAsync())
{
stream.Seek(0, SeekOrigin.End);
await stream.WriteAsync(audioContent, 0, audioContent.Length);
}