opensl,Opensles
opensl音频输出是什么
8.OpenSL ES全称为Open Sound Library for EmbeddedSystems,即嵌入式音频加速标准。OpenSL ES是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供了标准化、高性能、低响应时间的音频功能实现方法,同时还实现了软/硬件音频性能的直接跨平台部署,不仅降低了执行难度,而且促进了高级音频市场的发展。简单来说OpenSL ES是-一个嵌入式跨平台免费的音频处理库。所以它不是Android特有的。
opensl和audiotrack区别
1、管理不同。AudioTrack是在Android系统中管理,OpenSL是针对嵌入式管理。
2、音频类型不同。AudioTrack播放单一音频资源,OpenSL是平台的音频标准。
为什么ipad4看优酷的视频有声音看哔哩哔哩就没声音了都是客户端
1.首先在手机桌面上找到安装好的“哔哩哔哩”的图标并打开它。
2.然后在打开的哔哩哔哩应用主界面,点击左上角的“主菜单”按钮。
3.接着在打开的哔哩哔哩应用主菜单中点击“设置”图标。
4.这时就会打开哔哩哔哩app的设置页面,在页面中点击“解码设置”的菜单项。
5.在打开的解码设置页面中,我们找到“音频输出OpenSl?ES”的设置项。
6.我们点击该设置项后面的开关,把其设置为打开的状态就可以了。
apicloud openslidlayout 怎么重新加载
首先大家需要了解DCloud的产品,包括:
HBuilder:快速编码、调试、打包的IDE。它可以开发各种HTML5类程序,pc网站或app都可以开发,前端常见的less、sass等程序也可以开发。还可以通过插件开发php等语言。
5+ Runtime:基于webview的增强runtime,扩展了大量的js api,打通原生api和js api的桥梁。
5+ Runtime包括2部分,HTML5plus规范和Native.js。体验该产品请点这里下载手机demo
相比于APICloud的客户端,5+Runtime的能力更强大、开放性更好。
mui:一个开源、适用于手机App的、高性能前端框架。在App开发中是属于可选但推荐使用的框架。mui大部分基于HTML5实现,一些HTML5实现起来体验不好的地方,会调用5+ runtime的原生扩展能力实现。同时mui也可用于开发手机浏览器web app或微信app。体验该产品请点这里下载手机demo
更多了解这3个产品,请仔细阅读:
* DCloud产品概述
* mui概述:从本文中大家可以了解mui的设计理念,理解mui仅偏重ui组件、不封装各种util方法的“有所为、有所不为”的思想;
然后大家应该仔细阅读如下这篇产品设计对比文章:
* APICloud产品与DCloud深度对比分析:大家可从本文中了解APICloud产品和DCoud产品的深层次差异;
了解一下基础概念后,接下来从APICloud开发者的既有认知角度出发,介绍从APICloud向DCloud技术迁移的注意事项。
标准H5部分可直接迁移
所有基于标准HTML5开发的js、css、html,两个平台一致,可无缝迁移;所有基于H5封装的第三方组件(注意这里是第三方H5组件,不是APICloud官方封装的标准组件),均可平滑迁移;
扩展API对象--UI部分
域
APICloud的api都是以api.开头,是其公司的私有api。
DCloud的5+ runtime,命名以plus.开头;
DCloud的mui前端框架的api以mui.开头。
举个例子,打开窗口,APICloud是api.OpenWin;5+是plus.webview.open;mui是mui.openWindow。
当然mui.openWindow也是对plus.webview.open的一种封装,并且在里面处理了各种常见业务,比如显示/关闭waiting雪花。
窗口系统
两家的窗口都是基于原生的webview的,封装的命名略有不同;
APICloud在api命名层面就区分主窗口和子窗口,分别封装了api.OpenWin和api.OpenFrame两个方法;
而DCloud的5+ runtime是统一的plus.webview对象处理;通过plus.webview.create方法可创建webview,在该方法中通过参数控制webview显示位置;如果是要把一个子窗口嵌入父窗口,使用webview对象的append方法。
mui为了简化书写,封装了mui.openWindow方法,通过该方法可以创建并显示webview对象;通过mui.init方法中的subpages参数,可以创建子webview;
APICloud特意封装了api.openSlidLayout、api.openSlidPane等方法来实现侧滑导航;
mui的侧滑实现更为自由,就是滑动一个webview或一个div,不需要单独的方法。
webview模式:移动整个webview;
div模式:移动div区域;
每种模式下又有不同的动画效果,主要有3类:
主窗口不动、菜单移动;
菜单不动、主窗口移动;
主窗口、菜单同时移动;
mui封装的div模式侧滑菜单,用户无需任何js干预,仅需按照特定结构书写html即可,详细规范参考mui官网。
UI组件
APICloud原生封装的alert、confirm、prompt、actionSheet、toast、showProgress(对应DCloud公司的showWaiting)等,DCloud公司的5+ runtime也对应做了原生封装,参考nativeUI规范;
此时把api.alert改为plus.nativeUI.alert或mui.alert极客。
另外,DCloud公司的mui前端框架,还针对部分组件实现了更易个性化定制的H5版本,比如:actionSheet、toast、openPicker(对应mui中的dtPicker),可直接从hello mui中查看示例;
APICloud还封装了原生的按钮、输入框等控件,这些控件HTML自己就有,而且也没有性能问题,我们认为这些封装没有意义,并且原生控件会导致很难定位排版及无法个性化样式。
导航菜单
navigationBar
APICloud通过原生封装navigationBar对象,实现可滑动的导航条效果;DCloud则通过标准H5实现的分段选择,具有同等效果,且样式更为丰富;参考hello mui示例中的segment(分段选择),如下为两张效果图:
tabBar
tabBar是一个底部选项卡组件,APICloud通过js动态生成该组件;mui同样封装了选项卡组件,但通过简单html即可生成,在HBuilder中输入mtab即可生成选项卡的代码块;同时hello mui提供了多种选项卡模式,例如:webview模式选项卡、div模式选项卡、仅文字选项卡、二级选项卡;
界面布局
button
APICloud封装了原生的按钮,其实HTML自己就有按钮,封装原生按钮多此一举。
mui对HTML的按钮做了样式美化,提供各种颜色风格的按钮,只需如下简单一行html即可生成一个蓝色按钮:
input type="button" class="mui-btn mui-btn-blue"
mui的按钮添加不同class即可实现更多风格,效果如如下:
citySelector
APICloud封装了一个原生citySelector组件,通过js调用生成;
DCloud公司则通过H5封装了一个popPicker组件,通过该组件,既可以实现城市选择,也可以实现日期时间选择;参考hello mui中对应示例,效果图如下:
listview
mui通过H5封装了列表组件,在HBuilder中输入mList并回车,就可以快速生成列表代码块,简单几行html,实现一个列表组件,代码如下:
ul class="mui-table-view"
li class="mui-table-view-cell"
a class="mui-navigate-right"
Item 1
/a
/li
/ul
mui同样支持左右滑动列表项显示功能按钮;同时,mui还封装了各种其它组件,比如二级列表、图文列表等,详细参考hello mui示例;
scrollPicture
APICloud封装的图片联播器,对应着mui封装的gallery slider(图片轮播)组件,按照特定格式写一段标准的html,就会自动生成图片轮播组件;关于图片轮播的详细介绍,参考mui官网;
slider
APICloud原生封装的滑动器,对应着mui框架中的range(滑块),好的前端一样可以写出媲美原生体验的滑块组件,且使用更简单,仅需如下3行代码:
div class="mui-input-row mui-input-range"
input type="range" id='block-range' value="50" min="0" max="100"
/div
mui封装的滑块效果图如下:
timeSelector
参考citySelector,对应mui封装的popPicker组件;hello mui中也单独针对时间,给出了原生和H5两种示例;
DCloud公司的mui框架封装的其它组件
mui封装了更多灵活的mobile前端组件,如下:
accordion(折叠面板)
switch(开关)
popover(弹出菜单)
radio(单选框)
checkbox(复选框)
input(输入框) -- 支持清空操作、语音输入
grid(9宫格)
扩展API对象--能力部分
APICloud和5+ runtime都扩展了标准js没有的原生能力。
APICloud的扩展依赖封装,官方或三方制作模块来给js开发者提供更多原生api。
但原生有40多万api,封装是一件不现实的事情。
5+ runtime的2、8原则是把20%常用的、跨平台的api设计在HTML5Plus规范里。
然后剩下的不常用的api通过Native.js或5+ SDK插件实现。
HTML5+的规范见html5plus.org/doc/h5p.html
一些常用的api,迁移只是把api改为plus。
但对象的方法、属性包括回调方式可能不一样,需要具体看api,整体而言APICloud设计的api回调多,学习掌握难。
本地存储
APICloud封装了sqllite和spModule,但事实上HTML5的websql和localstorage很好用,并且js操作浏览器自带的websql、localstorage效率比js通过原生桥接访问原生sqllite数据的效率更高。详见App离线本地存储方案
Oc渲染器怎么渲染图片?
Oc渲染器渲染图片方法:
打开c4d的本身的渲染设置里,左上角有个框框,可以选择oc渲染器,就可以开始渲染了。
场景中有对象、灯光、hdr环境和相机 (渲染区域内确保无其它对象)。
勾选OC设置中的Alpha通道。
在渲染设置中选中OC渲染器,设置好保存路径,格式选为PNG,这里同样要勾选下面的Alpha通道。
进行渲染,会发现在图片查看器里是有HDR背景的。
很慌对不对,稳住,这只是显示问题,不信你看,把渲染好的图片拖进PS里,很奈斯的透明png图就出来了。
软件功能:
Octane Render 3.07渲染器是世界上第一个GPU-accelerated最快,无偏差、物理渲染器。这意味着Octane使用你的电脑的显卡来渲染真实感图像,而且超级快速。Octane的并行计算能力,您可以创建令人惊叹的效果。
OctaneRender 3的发布,带来了新的工具。包括体积光场和深度缓冲区,高帧速率虚拟现实VR渲染。版本还包含了重要的产业标准GPU渲染,包括开放材质语言(OpenSL)和OpenVDB粒子模拟。
音频开发中常用到的概念
在音频开发中,下面的这几个概念经常会遇到。
(1) 采样率(samplerate)
采样率,注意,目前44100Hz是唯一可以保证兼容所有Android手机的采样率。
采样就是把模拟信号数字化的过程,不仅仅是音频需要采样,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号,示意图如下所示:
蓝色代表模拟音频信号,红色的点代表采样得到的量化数值。
采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。
根据奈奎斯特理论,采样频率只要不低于音频信号最高频率的两倍,就可以无损失地还原原始的声音。
通常人耳能听到频率范围大约在20Hz~20kHz之间的声音,为了保证声音不失真,采样频率应在40kHz以上。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。
(2) 量化精度(位宽)
上图中,每一个红色的采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit等等,位数越多,表示得就越精细,声音质量自然就越好,当然,数据量也会成倍增大。
常见的位宽是:8bit 或者 16bit
(3) 声道数(channels)
由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。
单声道(Mono)和双声道(Stereo)比较常见,顾名思义,前者的声道数为1,后者为2
(4) 音频帧(frame)
这个概念在应用开发中非常重要,网上很多文章都没有专门介绍这个概念。
音频跟视频很不一样,视频每一帧就是一张图像,而从上面的正玄波可以看出,音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。
这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的,我们可以计算一下一帧音频帧的大小:
假设某通道的音频信号是采样率为8kHz,位宽为16bit,20ms一帧,双通道,则一帧音频数据的大小为:
int size = 8000 x 16bit x 0.02s x 2 = 5120 bit = 640 byte
5. 常见的音频编码方式有哪些?
上面提到过,模拟的音频信号转换为数字信号需要经过采样和量化,量化的过程被称之为编码,根据不同的量化策略,产生了许多不同的编码方式,常见的编码方式有:PCM 和 ADPCM,这些数据代表着无损的原始数字音频信号,添加一些文件头信息,就可以存储为WAV文件了,它是一种由微软和IBM联合开发的用于音频数字存储的标准,可以很容易地被解析和播放。
我们在音频开发过程中,会经常涉及到WAV文件的读写,以验证采集、传输、接收的音频数据的正确性。
6. 常见的音频压缩格式有哪些?
首先简单介绍一下音频数据压缩的最基本的原理:因为有冗余信息,所以可以压缩。
(1) 频谱掩蔽效应: 人耳所能察觉的声音信号的频率范围为20Hz~20KHz,在这个频率范围以外的音频信号属于冗余信号。
(2) 时域掩蔽效应: 当强音信号和弱音信号同时出现时,弱信号会听不到,因此,弱音信号也属于冗余信号。
下面简单列出常见的音频压缩格式:
MP3,AAC,OGG,WMA,Opus,FLAC,APE,m4a,AMR,等等
7. Adndroid VoIP相关的开源应用有哪些 ?
imsdroid,sipdroid,csipsimple,linphone,WebRTC 等等
8. 音频算法处理的开源库有哪些 ?
speex、ffmpeg,webrtc audio module(NS、VAD、AECM、AGC),等等
10. Android提供了哪些音频开发相关的API?
音频采集: MediaRecoder,AudioRecord
音频播放: SoundPool,MediaPlayer,AudioTrack (它们之间的区别可以参考 这篇 文章)
音频编解码: MediaCodec
NDK API: OpenSL ES
11. 音频开发的延时标准是什么?
ITU-TG.114规定,对于高质量语音可接受的时延是300ms。一般来说,如果时延在300~400ms,通话的交互性比较差,但还可以接受。时延大于400ms时,则交互通信非常困难