关于webview与js交互项目总结

本文探讨了移动端音视频处理技术,包括录音转换、音量计算、录音暂停功能及其实现方式。此外还介绍了JavaScript与WebView之间的交互,如下载监听、错误处理等,并讨论了Activity后台管理及界面刷新策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要用到的技术:

一:录音及转化机制及录音暂停的实现,及获取录音大小的优化。(顺带的研究了一下科大讯飞和云知声关于语音转化文字准确度方面的测试)
      ram转化为mp3.格式及文件上传。关于移植的时候注意事项,obj和jni要和移植过来的文件名一致的,
                                             // 将 buffer 内容取出,进行平方和运算
for (int i = 0; i < buffer.length; i++) {
// 这里没有做运算的优化,为了更加清晰的展示代码
v += buffer[i] * buffer[i];
}

// 平方和除以数据总长度,得到音量大小。可以获取白噪声值,然后对实际采样进行标准化。
// 如果想利用这个数值进行操作,建议用 sendMessage 将其抛出,在 Handler
// 里进行处理。 (Math.abs((int)(v /(float)readSize)/10000)
// double dB = 10*Math.log10(v/(double)readSize);
二:js与webviwe交互下载,及下载监听,
交互开始结束,出现错误的处理;
      web.setWebViewClient(new WebViewClient() {


@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (seestudio != null) {关于界面调转之后停止前一个页面的的录音播放。
seestudio.stop();
}
if (studio != null) {
studio.stop();
}
super.onPageStarted(view, url, favicon);
}


@Override
public void onPageFinished(WebView view, String url) {
isSz = true;
// bar.setVisibility(View.GONE);

if(url.contains(strUrl)){
lastUrl = url;
}


super.onPageFinished(view, url);
}

@Override
public void onReceivedError(final WebView view, int errorCode,
String description, String failingUrl) {//关于没有网络的错误的时候加一个处理,加载一个本地的html.并且js端调本地的方法实现刷新
   实现刷新的方法[(public void reLoad(){
                                   web.loadUrl(lastUrl);]
                                                               })
view.loadUrl("file:///android_asset/index/reload.html");
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
web.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
content.setText(title);
super.onReceivedTitle(view, title);
}
三:activity后台类似qq微信,无法杀死进程的。就是在destroy();的时候加一个通知实现重启这个activity;还有(其他一些什么优先级什么的)(你可以在手机进程中看一下qq和微信都是有两个进程在同时运行,一个干掉之后过一会就会重新出现,就像一个循环)。

四:交互的时候关于界面刷新,在线程中实现。
只要有下面代码就不会出现改变原生界面的时候,有时页面不会变化的效果。
Handler handlerInterface = new Handler();
handlerInterface.post(new Runnable() {
@Override
public void run() {
title1.setVisibility(View.GONE);
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值