小编mic*_*key的帖子

有损解压缩总是产生相同的输出吗?

考虑到有损压缩格式(对于图像,音频,视频等......)并且考虑到它只在相同的压缩输入文件上运行,相同的解压缩算法是否始终生成相同的输出?那么不同类型的解压缩器,它们是否会以相同的输入生成相同的输出?我已经读到某些地方,一些jpeg-decompression算法以速度换取质量,这意味着它们不会产生相同的输出.

总而言之,鉴于我们可以知道正在使用的压缩和解压缩算法,我们是否能够依赖输出总是相同的.通过控制使用哪些算法,可以获得确定性行为吗?

注意.它不一定要输出原始输入.

compression mp3 jpeg aac h.264

7
推荐指数
1
解决办法
824
查看次数

webview不显示javascript windows.open()

我有一个WebView显示我无法控制的网页内容.内容显示正常,但有产生弹出窗口的链接.执行此操作的javascript函数如下所示:

function getEntry(id) {
var win = window.open('', 'Booking',
'resizable=yes,scrollbars=yes,status=no,width=500,height=400');
win.document.location = '/some/url/1-' + id ;
}
Run Code Online (Sandbox Code Playgroud)

我不能轻易改变这一点,如果负责我下载的页面的人会改变它,我想我的应用程序会失败地失败...

WebView在活动中的设置如下所示:

    _webview = new WebView(this);
    setContentView(_webview);

    final Activity activity = this;
    _chromeClient = new MyChromeClient();

    _webview.setWebChromeClient(_chromeClient);

    //I experimented with changing user agent, in case that would have any effect, it didn't...
    _webview.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");

    _webview.setWebViewClient(new MyWebViewClient());
    _webview.getSettings().setJavaScriptEnabled(true);
    _webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    _webview.getSettings().setSupportZoom(true);
    _webview.getSettings().setBuiltInZoomControls(true);
    _webview.getSettings().setDomStorageEnabled(true);
    //Cache settings...
    _webview.getSettings().setAppCacheMaxSize(1024*1024*8);
    _webview.getSettings().setAppCachePath("/data/data/com.your.package.appname/cache");
    _webview.getSettings().setAllowFileAccess(true);
    _webview.getSettings().setAppCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)

MyWebClient:

private class MyWebViewClient extends WebViewClient { …
Run Code Online (Sandbox Code Playgroud)

javascript android popup android-webview

4
推荐指数
2
解决办法
1万
查看次数

Java 解引用如何工作?

我需要对 Java 引用(指针)进行一些说明。我读过这篇(Java is Pass-by-Value, Dammit! by Scott Stanchfield)关于 Java 传递变量的方式的优秀文章。据我所知,一切都是作为内存指针传递的。

public class foo{
    int a;
    int b;

    public foo(a, b){
       this.a = a;
       this.b = b;
    }
}
Run Code Online (Sandbox Code Playgroud)

所以在一些这样的代码中:

foo aFoo = new foo(1,2); //new foo created at adress 0x40 for instance
someFunc(aFoo);
Run Code Online (Sandbox Code Playgroud)

to 的参数someFunc实际上是数字0x40(尽管这可能是一种简化,但为了了解模式)。

现在,假设我创建了另一个类

public class bar{
    foo aFoo;

    public bar(){
       this.aFoo = new foo(1,2);
    }
}
Run Code Online (Sandbox Code Playgroud)

并实例化以下变量

bar aBar = new bar();
foo bFoo = new foo(3,4);
Run Code Online (Sandbox Code Playgroud)

现在假设我想将 的值复制aBar.aFoo …

java pointers pass-by-reference pass-by-value

1
推荐指数
1
解决办法
2981
查看次数