3

私はCefSharpCefGlueをいじって、C#アプリケーションでCefSharpを非常にうまく機能させることができました。

CefSharpを使用すると、JavaScriptを実行し、メモリからHTMLをロードできます。たとえば、JavaScriptを実行するには、次のようにします。

view.ExecuteScript("setInterval(function(){alert(\"Hello\")},3000);");

HTMLをロードするには:

model.LoadHtml(string.Format("<html><body><a href='{0}'>CefSharp Home</a></body></html>", home_url));

<audio>Webサーバーからロードされたファイルでロードできることはわかっています。ローカルファイルから、またはCefGlue / Sharpを使用してストリームを介してオーディオをロードする方法はありますか?

さらに良いことに、これを「動的」JavaScriptで(たとえばExecuteScript(...)上記を使用して)どのように行うことができますか?

4

1 に答える 1

1

私はそれを理解しました。これは、Webサーバーになりすますことによって行われます。難しいのは、要求されたURLを解析することによって行われるように見える、要求されたものの解釈にあるようです。そうでなければ、それはすべてうまくいきます。

public bool OnBeforeResourceLoad(IWebBrowser browser, 
    IRequestResponse requestResponse)
{
    IRequest request = requestResponse.Request;

    if (request.Url.EndsWith(".gif")) {
        MemoryStream stream = new System.IO.MemoryStream();
        Properties.Resources.FooImage.Save(
            stream, System.Drawing.Imaging.ImageFormat.Bmp);
        requestResponse.RespondWith(stream, "image/gif");
    }
    else {

        Stream resourceStream = new MemoryStream(Encoding.UTF8.GetBytes(
            "<html><body><img src=\"foo.gif\" /></body></html>"));
        requestResponse.RespondWith(resourceStream, "text/html");
    }

    return false;
}
于 2012-09-09T16:03:41.707 に答える