将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

转载于:https://www.cnblogs.com/kaili/archive/2013/06/05/3118776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值