android高性能webview之crosswalk
来源:互联网 发布:知乎周刊 kindle 推送 编辑:程序博客网 时间:2024/06/06 05:31
下载地址
对着 demo工程比较容易将crosswalk嵌入自己的项目中,下面是一些需要注意的地方:
因为完整引入包体会变得很大,适当的可以采用下载核心库的方式,在运行时动态加载。大概有十几M的样子,似乎还是蛮大的。
笔者在最新的版本中,AudioContext.decodeAudioData解码MP3会出现错误,没弄明白原因,故如果使用AudioContext播放音频可以直接使用pcm格式音频,无需解码。下面是笔者测试过,播放pcm的演示代码:
window.AudioContext = window.AudioContext || window.webkitAudioContext|| window.mozAudioContext;window.audioContext = new AudioContext();//audioData:获取的wav二进制数据,默认采用单声道 32位的pcm数据(必须!!!!)function getAudioBuffer(audioData){//去掉最开始的文件头,保留原始的pcm数据。为了简化,这里不读取文件头信息,直接取大概值60。 audioData=audioData.slice(60); //4字节对齐,因为AudioBuffer 必须要4字节对齐 var frames=parseInt(audioData.byteLength/4); //1表示创建1个声道,跟wav的声道数没有关系的。 //frames音频 总帧数 //32000音频采样率 ,也就是1秒 采集的帧数 var buffer = window.audioContext.createBuffer(1,frames, 32000); var aBuf=audioData.slice(0,frames*4); var arrBuffer=new Float32Array(aBuf); if (buffer.copyToChannel) { //把音频数据 复制到AudioBuffer的 0声道索引。 如果创建了多个声道,可以给后面的声道 继续赋值 buffer.copyToChannel(arrBuffer, 0, 0) } else { var channelBuffer = buffer.getChannelData(0); channelBuffer.set(arrBuffer); } return buffer;}function play(audioBuffer){ var audioBufferSouceNode = audioContext.createBufferSource(); audioBufferSouceNode.buffer = audioBuffer; source.connect(audioContext.destination); //第一个为延迟播放的时间,第二个为 播放的偏移位置,以秒为单位 audioBufferSouceNode.start(0, 0);}
- 虽然能比较好的解决android兼容和性能问题,但是如果不运行h5游戏等 耗性能的程序,直接使用android自带的webview也是可以的了-_-
0 0
- android高性能webview之crosswalk
- android crosswalk-webview 取代 webview
- android 的导入crosswalk 用xwalkview 替换webview
- Crosswalk--深度定制webview
- crosswalk代替webview
- crossWalk替换webView集成
- iOS-WebKit之WKWebView(一个高性能的WebView)
- android原生加载图片的性能与webView加载图片的性能哪个高?
- android WebView性能优化
- Android WebView:性能优化
- Android WebView 性能优化
- Crosswalk集成到Android Studio,替代原生WebView遇到的问题
- WRT之Crosswalk简介
- crosswalk之"瘦身"秘籍
- Crosswalk Project for Android
- Android 使用crosswalk实例
- 为什么放弃WebView 而 使用 crosswalk!
- CrossWalk webview fragment 高度变低
- JDK8新特性—Lambda简洁代码以及其他
- 1089. Insert or Merge (25)
- JavaScript内置对象--单体内置对象(Global、Math)详解
- 设计模式——工厂方法模式
- Dijkstra算法
- android高性能webview之crosswalk
- 网络基础
- 分箱问题
- Django 项目部署(apache)
- 算法训练 区间k大数查询
- iOS学习之Masonry第三方约束
- 虚拟存储器和高速缓存总结
- protell99笔记1——快捷键
- java日志系统-- slf4j + log4j