我有一个在线广播的网址,我想玩它。所以,我这样做了:读取流并将其写入字节数组并使用audioTrack类播放。这是代码:
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);
}
}
}
但这样我只能听到噪音,没有音乐。
答案 0 :(得分:3)
您可以使用MediaPlayer类通过提供URL来传输音频。
MediaPlayer player = new MediaPlayer();
player.SetAudioStreamType (Stream.Music);
player.SetDataSource ("http://media.vmariel.ru:8000/puls");
player.Prepare();
player.Start();