Android.Media.MediaPlayer クラスの SetDataSource メソッドは、そのままだと System.IO.Stream を受け取ることができず*1、例えば WebAPI で拾ってきたバイト配列を MemoryStream に入れたり、FileIO で拾ってきた Stream といった .NET Framework 系のストリームとの相性があまりよくありません。
とはいえ、 SetDataSource メソッドのオーバーロードには MediaDataSource クラスのインスタンスをパラメーターとして受け取るものが用意されています。これは開発者が独自の方法でデータを読み込ませたいときに使うものですが、これを使って Stream も読めるようにします。
*1:他の口があるかもしれない?