J'utilise une MediaPlaybackList pour diffuser essentiellement des données audio arrivant par Bluetooth sous la forme d'un byte[] à un intervalle de temps fixe. D'après la documentation MS, MediaPlaybackList permet une lecture "sans interruption" entre les échantillons audio. Mais dans mon cas, j'ai un bruit sec et un décalage lors de la transition vers l'échantillon audio suivant.
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(); ;
}
Comment puis-je obtenir une diffusion audio en continu véritablement "sans interruption" en utilisant une méthode similaire à celle-ci ?
J'ai également essayé d'écrire mon flux dans un fichier en temps réel au fur et à mesure de l'arrivée des données, juste pour voir si le bruit sec ou l'espace est présent. La lecture du fichier auquel les octets ont été ajoutés est parfaite, sans bruit ni décalage.
using (var stream = await playbackFile.OpenStreamForWriteAsync())
{
stream.Seek(0, SeekOrigin.End);
await stream.WriteAsync(audioContent, 0, audioContent.Length);
}