Windows 8でバイト配列をInMemoryRandomAccessStreamまたはIRandomAccessStreamに変換する方法に問題がありましたか?
これは私のコードですが、うまくいきませんでした。次のコードを参照してください
internal static async Task<InMemoryRandomAccessStream> ConvertTo(byte[] arr)
{
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
Stream stream = randomAccessStream.AsStream();
await stream.WriteAsync(arr, 0, arr.Length);
await stream.FlushAsync();
return randomAccessStream;
}
そして、RandomAccessStreamReference を作成し、画像を他のアプリと共有するためにリクエスト データパックを設定します。
private static async void OnDeferredImageStreamRequestedHandler(DataProviderRequest Request)
{
DataProviderDeferral deferral = Request.GetDeferral();
InMemoryRandomAccessStream stream = await ConvertTo(arr);
RandomAccessStreamReference referenceStream =
RandomAccessStreamReference.CreateFromStream(stream);
Request.SetData(referenceStream);
}
しかし、その結果、画像のバイト配列を他のアプリと共有できません。コードに問題はありますか? 私の意見では、byte[] を InMemoryRandomAccessStream に変換するとエラーが発生しますが、例外はスローされませんでした。
誰もそれを行う方法を知っていますか? また、バイト配列を IRandomAccessStream に変換できれば、同じことが役に立ちます。または私のコードに別のエラーがありますか?