1

画像の URL を返す内部 API (制御できない) があります。URL を調べたところ、次の形式になっていることがわかりました。

blob://xxxxxxxx

この URL をimg.srcコードの値として使用すると、画像が完全に表示されます。ここで、この URL をIRandomAccessStreamオブジェクトに変換して、別の内部 API を呼び出せるようにします。

私は次のことを試しました:

var uri = new Windows.Foundation.Uri(imgUrl);
var streamRef = RandomAccessStreamReference.createFromUri(uri);
streamRef.openReadAsync(function (stream) {
    // stream is of type IRandomAccessStream
    // make internal API call here
}, error);

ただし、呼び出しのエラー ハンドラー関数で「実装されていません」というエラー メッセージが表示されopenReadAsyncます。

Blob URL を IRandomAccessStream に変換する別の方法はありますか?

4

1 に答える 1

1

次のコードは、フォーマット (blob:B0939E98-128B-4BA3-B8D6-B499E7F6C612) の URL から blob オブジェクトへのアクセスを提供します。これは、w3 ファイル API 仕様のセクション 12.7 によるものです。

// url like example: blob:B0939E98-128B-4BA3-B8D6-B499E7F6C612
WinJS.xhr({ url: url, responseType: 'blob'}).then(function (req)
{
    var blob = req.response;
}).then(null, function onerror()
{
    // handle error
});

その後、FileReader apiを使用して、ブロブの内容を読み取ることができます。FileReader api のmozilla doc リンク。IRandomAccessStream を構築する特定の理由がある場合は、ブロブ オブジェクトを IRandomAccessStream に変換するエクスプローラーが必要です。

于 2013-05-20T04:52:10.427 に答える