最新版本:android音频开发6
优采云 发布时间: 2022-11-26 20:59最新版本:android音频开发6
前面的文章介绍了如何使用Android提供的AudioRecord在Java层采集音频,使用AudioTrack播放音频,使用MediaCodec编解码。这些API是Android提供的Java层API。无论是采集、播放还是编解码,这些API接口都需要将音频数据从Java复制到native层,或者从native层复制到Java。如果想减少拷贝,开发更高效的Android音频应用,推荐使用Android NDK提供的OpenSL ES API接口。它支持直接在本机层处理音频数据。
OpenSL ES从Android 2.3开始就提供了,但是关于OpenSL ES的Android官方文档很少,网上资料也比较少。另外,它的接口使用了面向对象的C接口,不是特别简单易懂,所以学起来也不是那么容易,我打算通过两篇文章来介绍这个框架,希望对初学者有所帮助。
本文无意介绍OpenSL ES的工作原理和功能使用(这些将在下一篇文章中介绍),而是从宏观的角度简单介绍一下OpenSL ES的概况,让初学者了解这个API是干什么的,以及可以做哪些事情,哪些事情不能做,最后给出了一些参考示例代码和资源链接。
1. 什么是 OpenSL ES?
OpenSL ES的全称是:Open Sound Library for Embedded Systems,是一套免授权、跨平台、针对嵌入式系统优化的硬件音频加速API。为本地应用开发者在嵌入式移动多媒体设备上提供标准化、高性能、低响应时间的音频功能实现方法,实现软硬件音频性能的直接跨平台部署,降低执行难度,促进先进音响市场。开发。(来自百度百科)
一句话概述:OpenSL ES是一套针对嵌入式平台的音频标准。
2、Android和OpenSL ES有什么关系?
Android 2.3 (API 9) 开始支持 OpenSL ES 标准。通过NDK提供相应的API开发接口。下图是Android官方给出的关系图(来源:这里):
从图中可以看出,Android实现的OpenSL ES只是OpenSL 1.0.1的一个子集,并进行了扩展。因此,对于OpenSL ES API的使用,我们需要特别注意Android支持哪些,哪些不支持。有的,具体相关文档地址位于NDK docs目录:
1个
2个
NDKroot/docs/Additional_library_docs/opensles/index.html
" />
NDKroot/docs/Additional_library_docs/opensles/OpenSL_ES_Specification_1.0.1.pdf
3.可以做什么?什么不能做?
下面总结了 Android OpenSL ES 的特性和不支持的功能。
特征:
(1) C语言接口,兼容C++,需要在NDK下开发,可以更好的集成到原生应用中
(2) 运行在native层,需要自己管理资源的申请和释放,没有Dalvik虚拟机的垃圾回收机制
(3) 支持PCM数据采集,支持配置:16bit位宽,16000Hz采样率,单通道。(其他配置不保证兼容所有平台)
(4) 支持PCM数据播放,支持配置:8bit/16bit位宽,单通道/双通道,little endian模式,采样率(8000、11025、12000、16000、22050、24000、32000、44100、48000Hz)
(5)支持播放的音频数据来源:res文件夹下的音频、assets文件夹下的音频、sdcard目录下的音频、在线网络音频、代码中定义的音频二进制数据等。
不支持:
(1) 不支持Android 2.3(API 9)以下版本的设备
(2) 并非OpenSL ES定义的所有特性和功能都得到实现
(3) 不支持 MIDI
(4) 不支持直接播放DRM或加密内容
" />
(5) 不支持音频数据的编*敏*感*词*。如果需要编*敏*感*词*,则需要MediaCodec API或第三方库
(6) 音频延迟方面,与上层API相比,没有明显改善
4. 使用 OpenSL ES 开发音频应用程序有什么好处?
(1)避免在native层和java层频繁拷贝音频数据,提高效率
(2) 与Java API相比,可以更灵活地控制参数
(3) 由于是C代码,可以进行深度优化,比如使用NEON优化
(4) 代码细节更难被反编译
(五)其他,待补充
5.示例代码
老外(Victor Lazzarini)写了一篇很好的Android OpenSL ES API介绍,并给出了一些示例代码,链接如下:
我提取了其中两个文件,对其进行了修改,并将它们组织到我的 AudioDemo 示例中。我个人认为它具有更好的示范效果。地址如下:
6.有什么好的资源?
“Android.NDK.Beginner's.Guide.pdf”
七、总结
官方发布:seo优化 | 网站被百度降权后该怎么办?
作为一个网站SEO优化师,最不想看到也是最害怕的就是自己负责的网站被降级。这里说的降级指的是多个关键词排名下降,即使在前100之外,网站流量也大幅下降,SEO优化的负责人会承受不小的压力,尤其是服务的SEOer人员公司。你吃顿饭,不然直接开除。
这个时候,“吃苦耐劳”的SEOer人员只能忍着了,因为这个时候你跟老板解释就没有意义了。他只会说你在找借口。如果老板懂一点SEO知识,他可能会来找你,和你亲切的聊聊,出现这种情况是什么原因,怎么解决等等。
总之,不管是什么情况,当网站降级的时候,我们都应该冷静下来想一想为什么会降级,我们在优化网站的时候是不是做了什么违反搜索引擎规则的事情。思考过后,再修正优化方法等。
那么,网站降级后,您会立即做什么?我做SEO好几年了,也经历过网站被K的情况,下面我就用SEM来分析一下这种情况,我会怎么做,给大家提供一个参考。
1、冷静思考分析网站被降级的原因
当网站被确认降级后,我们应该冷静下来分析原因,不要感到天塌下来的恐慌。说到这里,我会回忆一下我去年优化过的东西。一个关于SEO的企业网站。当时,该网站是一个全新的网站。上线不到两周,我用SEO工具查了一下,发现权重从2变成了0,同时发现指数也从百降到单。算起来,第一页和第二页都找不到网站域名的首页。这时候我就确定网站已经降级了。也就是在这个时候,我并没有像新手那样惊慌失措,而是冷静的思考分析了它功率下降的原因,那个时候,
1.查看百度站长平台的消息提醒
相信现在大部分站长做网站排名优化,主要是针对百度的。既然是为百度搜索引擎做的,那怎么能不在站长平台上验证自己的网站呢?经核实,如果网站出现问题,一般百度站长平台会有及时的信息通知,如:机器人封禁、抓取异常等。这些通知可能是您的网站被剥夺权利的原因。
2. 分析同一IP下的站点
因为同一个IP下其他网站如果被处罚,也会对本站产生影响,严重的还会导致网站降级。这种情况出现的几率是比较小的,但是在网站降级的时候,我们还是需要分析每一个可能导致网站降级的因素,所以还是要检查每个网站在同一个IP下,没有网站在同一个IP下会被惩罚。那么,这个因素就可以排除了。
3、查看每个页面是否正常
如果我们在站长平台上没有得到任何重要的新闻提醒,那么检查我们网站的首页、栏目页、内容页是否正常,主要是检查页面中的代码是否被黑链接、被攻击、等等
4、查看网站近期是否有重大改版改版
" />
网站大改版意味着关键词的排名和采集
会有很大的波动。当然,这种波动可能会让网站变得更贵,也可能会降低权威。网站的大改版会引起波动。百度方面也明确表示,当然如果我们的修改是基于给用户带来更好的体验,那么你们网站的降电是短期的事情,很快就会恢复。可能会有更好的排名。
如果一个网站改版处理不当,被降权的概率是非常高的。如果处理得当,不会造成降级。那个时候百度没有什么改版工具,很多东西基本都是靠自己的经验。现在百度推出了网站改版工具,当您需要网站改版的时候,可以好好利用网站改版工具,减少不必要的损失。
5.是否有作弊
作弊行为当然包括常见的购买链接、黑链接、群发垃圾链接等。这些行为都是搜索引擎明令禁止的作弊行为。很有可能这个站点已经被百度发现是购买链接的行为,链接到它的链接很可能会受到联合处罚。
6、各大搜索引擎排名
每个搜索引擎都会有自己的一套收录和排名规则,但是搜索引擎也会有相同的规则,比如以用户为导向,用户体验好的网站会得到好的排名,如果你的网站在各种情况下的话你在搜索引擎中被降级,你的网站肯定有很大的问题,而且这些问题绝对不是一天两天的事情,有可能你自己已经发现了,所以你得去找及时解决这些问题并改正。
7、检查服务器是否正常
服务器的稳定性是绝对影响排名和采集
的最重要因素之一。很多网站经常因为服务器不稳定而降级。这种不稳定主要体现在网站经常打不开,或者只能在某些区域打开,或者打开速度很慢,尤其是百度,非常重视服务器的稳定性。
凡德的服务器不稳定,导致无法访问。十有八九网站会降级,而且宕机时间长,很难恢复到以前的状态。当然,搜索引擎这么看重这个服务器也是正常的。因为搜索引擎是相当“用户”的,一个用户往往打不开你的网站,那么搜索引擎把你排名上去有什么意义呢?
用户点了你的网站也打不开,严重影响用户体验。这严重违背了搜索引擎所倡导的具有良好用户体验的网站。因此,被剥夺权利也是恰当的。这个时候,我应该尽快去做。恢复并确保服务器稳定性。
8.查看网站日志
一般网站的服务器都会存储每天的网站日志。这些日志包括用户和搜索引擎的一些行为轨迹。从这些网站日志中,我们可以查看降级前后的几天里,哪些页面被搜索引擎蜘蛛抓取过?爬取页面返回的信息是什么?有问题吗?
目前,网上有相当多的网站日志查看工具。相信大家都知道怎么查看这个网站的日志。
9、分析网站的外部链接
因为我优化过的SEO网站是改版网站,域名之前也优化过,所以很有可能是之前做的*敏*感*词*会不会降级。答案将是不言而喻的,所以我将一一拒绝此类外部链接。我花了将近两天的时间。
" />
2.制定网站SEO策略,解决权重恢复问题
网站降级的原因找到并处理好之后,接下来就是解决恢复网站权重和排名的问题了,那么一个被降级的网站如何恢复权重呢?这是很多站长,尤其是新手站长每天都在站长群里问的问题,也是他们最苦恼的问题。接下来,马海翔再次以优化后的SEO网站为例,说说我是如何让被降级的网站重振旗鼓的。
1、定期定量更新网站原有价值内容
网站内容建设的重要性已经是老生常谈了。百度官方多次强调内容质量,并明确表示将优先提供更优质、有利于用户体验的内容页面。因此,我会坚持每天写几篇SEO行业相关的原创文章,上午写,下午发表。坚持了一段时间后,发现百度已经开始重新收录了。一些长尾关键词也有排名,这是很好的体重恢复表现。
2.优质外链建设
与往年相比,外链不是很有效,但指的是一些低质量的外链和一些被称为垃圾的外链。百度搜索引擎仍然更加重视高质量的外部链接。权重高,那么什么是高质量的外链呢?官方的标准是用户主动自愿给的链接才叫优质外链
当时在优化网站的时候,为了建设高质量的外链,除了做一些相关行业的友情链接,马海翔还坚持写了一篇跟SEO相关的文章,也跟站长、SEO或者互联网相关每天向A5站长投稿到知名门户网站如、站长之家等,文章审核通过后将被大量转发,源源不断带来大量高- 优化网站的优质外部链接。
这样不仅可以引导蜘蛛抓取网站,还可以增加整个网站的权重,提高网站的关键词排名,对恢复权重也起到至关重要的作用。
3、恢复网站权重一定要有毅力,执行力要强
一个被剥夺权利的网站要想恢复,不仅要改变一些不当的优化方式,还需要不断重复以上两点:
(1)定期、定量更新网站原有价值内容。
(2) 建立高质量的外部链接
很多站长失败的原因就是不够坚持。有的站长坚持更新半个月,看网站没有任何变化就放弃了。其实网站优化是一个日积月累的过程,从量变到质变。在恢复SEO站点权重的时候,我坚持了5个月。在这5个月的时间里,我也想过放弃,但是想了想还是要坚持做下去,这样才能考验自己的判断能力,所以一直坚持了5个月,终于把网站做完了百花齐放,很多关键词排名都很好。
注释:
网站被降级并不可怕。在我看来,这是锻炼自己,提高自身能力的最好方式。和朋友聊天的时候经常会说这句话。如果一个SEOer工作者没有经历过网站降级到恢复的过程,那么你就不是一个合格的SEOer。说实话,在优化这个SEO网站的过程中,从降权到恢复,我学到了很多东西。同时,自身的能力也有了质的飞跃!