将byte数组转成IRandomAccessStream

  今天在做项目时,遇到了如何将byte[]数组中的音频流,绑定到MediaElement控件中去,在MediaElement控件中有一个方法

  public void SetSource(IRandomAccessStream stream, string mimeType);该方法是将音频以流的方式绑定到MediaElement控件中去,实现音频文件的播放。

  现在问题就出现在我们可以将byte[]数组中的音频流转换成MemoryStream类型的流,可是如何将MemoryStream类型的流转换成IRandomAccessStream类型的流呢?

  接下来我们一步一步实现:

  1.首先先将byte[]转换成MemoryStream类型的

  MemoryStream stream = new MemoryStream(bit) //bit为byte[]类型的字节数组

  2.然后我们将MemoryStream类型转换成IRandomAccessStream类型的

 1 private async Task<IRandomAccessStream> Convert(MemoryStream stream)

 2         {

 3             var randomAccessStream = new InMemoryRandomAccessStream();

 4             var outputStream = randomAccessStream.GetOutputStreamAt(0);

 5             var dw = new DataWriter(outputStream);

 6             var task = new Task(() => dw.WriteBytes(stream.ToArray()));

 7             task.Start();

 8             await task;

 9             await dw.StoreAsync();

10             var success = await outputStream.FlushAsync();

11             return randomAccessStream;

12         }

  3.最后将转换成IRandomAccessStream类型的流绑定到音频控件中去,实现音频文件的播放。

  MediaElement.SetSource(stream,"");

  以上就是实现了如何将Byte[]字节流向IRandomAccessStream流。

详细请转:http://www.silverlightchina.net/html/windows8/study/2012/1110/20047.html

你可能感兴趣的:(Access)