Интернет радио на C# Unity3D
Формулировка задачи:
Всем привет, возможно ли в Unity3D написать на C# интернет радио (воспроизведение аудио потока) а потом скомпилировать в приложение под андроид ?
Если это все же реально, то подскажите куда копать пожалуйста.
Решение задачи: «Интернет радио на C# Unity3D»
textual
Листинг программы
- private static async Task Play()
- {
- using (WebClient wcDownload = new WebClient())
- {
- // Create a request to the file we are downloading
- WebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://media.vmariel.ru:8000/puls");
- // Set default authentication for retrieving the file
- webRequest.Credentials = CredentialCache.DefaultCredentials;
- // Retrieve the response from the server
- WebResponse webResponse = (HttpWebResponse)webRequest.GetResponseAsync().Result;
- // Ask the server for the file size and store it
- Int64 fileSize = webResponse.ContentLength;
- // Open the URL for download
- System.IO.Stream strResponse = wcDownload.OpenRead(new System.Uri("http://media.vmariel.ru:8000/puls"));
- // It will store the current number of bytes we retrieved from the server
- int bytesSize = 0;
- // A buffer for storing and writing the data retrieved from the server
- byte[] downBuffer = new byte[131072];
- // Loop through the buffer until the buffer is empty
- AudioTrack audioTrack = new AudioTrack(
- // Stream type
- Android.Media.Stream.Music,
- // Frequency
- 48000,
- // Mono or stereo
- ChannelConfiguration.Stereo,
- // Audio encoding
- Android.Media.Encoding.Pcm16bit,
- // Length of the audio clip.
- downBuffer.Length,
- // Mode. Stream or static.
- AudioTrackMode.Stream);
- audioTrack.Play();
- while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0)
- {
- await audioTrack.WriteAsync(downBuffer, 0, downBuffer.Length);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д