我有一个循环,它将收到传入的流,将其写入临时文件,并在每个循环上将android MediaPlayer setdatasource设置为该文件。如果我在循环内声明它,它将播放,但如果在循环外,它将只播放一次?
Java.IO.File temp = Java.IO.File.CreateTempFile("temp", "mp3");
Java.IO.FileInputStream fis = new Java.IO.FileInputStream(temp);
temp.DeleteOnExit();
MediaPlayer player = new MediaPlayer();
while (true)
{
try
{
byte[] myReadBuffer = new byte[10000];
Java.IO.FileOutputStream fos = new Java.IO.FileOutputStream(temp);
mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
fos.Write(myReadBuffer, 0, myReadBuffer.Length);
player.SetDataSource(fis.FD);
player.Prepare();
player.Start();
while (true)
{
if (!player.IsPlaying)
{
player.Reset();
break;
}
}
}
catch (System.IO.IOException ex)
{
System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
}
}