Как упоминалось в статье, протокол, используемый для передачи аудиоданных, настраивается.
Примечание !!!Это частный проект.Вы не можете использовать мои серверы или клиенты с другими стандартизированными серверами или клиентами.Я не использую стандарты, такие как RTCP или SDP.
Код можно найти в TcpProtocols.cs .В клиентском приложении UWP вам необходимо преобразовать код для UWP.В этом документе показано, как создать базовый клиент сокета TCP в UWP.Но вам также необходимо постоянно изменять код для получения данных с сервера.Следующий код может быть полезен для вас.
private async void StartClient()
{
try
{
// Create the StreamSocket and establish a connection to the echo server.
using (var streamSocket = new Windows.Networking.Sockets.StreamSocket())
{
// The server hostname that we will be establishing a connection to. In this example, the server and client are in the same process.
var hostName = new Windows.Networking.HostName(TxtHostName.Text);
await streamSocket.ConnectAsync(hostName, TxtPortNumber.Text);
while(true)
{
using (var reader = new DataReader(streamSocket.InputStream))
{
reader.InputStreamOptions = InputStreamOptions.Partial;
uint numAudioBytes = await reader.LoadAsync(reader.UnconsumedBufferLength);
byte[] audioBytes = new byte[numAudioBytes];
reader.ReadBytes(audioBytes);
//Parse data to RTP packet
audioBytes = Convert_Protocol_LH(audioBytes);
var pcmStream = audioBytes.AsBuffer().AsStream().AsRandomAccessStream();
MediaElementForAudio.SetSource(pcmStream, "audio/x-wav");
MediaElementForAudio.Play();
}
}
}
}
catch (Exception ex)
{
Windows.Networking.Sockets.SocketErrorStatus webErrorStatus = Windows.Networking.Sockets.SocketError.GetStatus(ex.GetBaseException().HResult);
}
}
ОБНОВЛЕНИЕ:
Пакет RTP
RTSP дляЖивое аудио рекомендуется и широко используется. Протокол потоковой передачи в реальном времени (RTSP) - это протокол управления сетью, разработанный для использования в развлекательных и коммуникационных системах для управления серверами потокового мультимедиа.Протокол используется для установления и управления медиа-сессиями между конечными точками.Есть некоторые преимущества RTSP.В этом решении вам нужно создать сервер RTSP, а затем использовать библиотеку VLC.MediaElement или другую библиотеку, которая поддерживает Windows IoT Core, в вашем приложении UWP.Но я не уверен, что эта библиотека поддерживает RTP.Кроме того, в этом документе показаны поддерживаемые кодеки в Windows IoT Core.