推酷是怎么怎样采集微信公众号文章采集的

交互设计师笔试、面试问题收集汇总(共60题,更新)
收集整理一些我遇到过/朋友遇到过/网上搜索而来的交互设计面试、笔试题,题目会不定期更新,最新更新为共60道题,如果大家遇到什么难的或者有趣的面试笔试题欢迎发给我收集和整理,联系邮箱(#改@)
1.设计一个智能家居的电器火灾报警系统,产出关键流程图和线框图(校招笔试,1个小时)
2.设计一个制作相册的PC端软件,需要有设置相框、分享给好友功能,产出关键流程图、信息架构和线框图(社招笔试、1个小时)
3.默认情况下iPhone的消息推送提示会在锁定的屏幕上做完整的透出,有时会泄漏一些隐私的内容,目前设置和修改此项功能的隐藏深路径长,并且界面表达不方便理解和操作。如果让你优化这个流程和操作界面你会怎么做?如果让你用更创新的方式解决这个问题,你会怎么做?(校招笔试)
4.列举一个你认为最好的用于时尚购物的App,描述其独特之处。如果请你来重新设计,如何在交互设计上表现得更为极致。必须包含:设计分析报告、关键界面图及流程图(校招笔试)
5.QQ和微信在交互设计上有什么不同?(社招面试)
6.列举3种以上日期控件的形式、使用场景及优缺点。(校招笔试)
7.请列举几种移动应用热门的交互模式(例如iOS应用中Path的扇形菜单Morphing Controls,Android应用上流行的抽屉导航 Navigation Drawer)以及各自典型的APP,并分析各自的优缺点。(校招笔试)
8.结合上班族日常生活场景需要,结合电商或移动情境,畅想一套智能家居的解决方案。(校招笔试)
9.结合你所经历过的项目,描述项目成员的职能过程和发挥的作用及配合流程。除了专业上的输出,交互设计师还可以提供怎样的增值服务以体现价值。(校招笔试)
10.假如产品经理让你设计一个直播App,界面上最多只能有三个按钮,接下来你准备怎么做?(校招面试)
11.请列举出某个你熟悉产品体验不好的地方并提出改进方案,至少8个(社招笔试、半个小时)
12.列举表单对齐的4种方式及其使用场景和优缺点。(校招笔试)
13.Android和iOS在交互上有哪些不同。(社招面试)
14.假如你设计了淘宝新首页,50%的用户10秒内关闭离开,分析原因(校招笔试)
15.网页中点击链接后,新打开窗口和当前页面刷新的差异点?背后的原因和适用场景?(校招笔试)
16.什么是响应式网页设计,这种设计有何优缺点(校招笔试)
17.比较两个即时通讯类app,分析各自在用户诉求或交互上的优点和创新点,结合图文针对其中的缺点给出解决方案。(校招笔试)
18.背景说明:北京三里屯有一家Apple Store,每当有新品刚发售的时候,总是有很多客户来排队购买,中间掺杂 着一些黄牛党。平时也会有很多黄牛党在附近倒卖一些紧缺的商品。 作为设计师,设计一款供该商店使用的触摸屏手机APP,供新品发售排队的客户排号用,保证其:
a、公平性; b、尽可能地识别和排斥黄牛党 ; c、易用,店方易管理 ; d、其他的从案例中引申或补全的用户需求。
题目要求: 这款app包括客户端界面本身和一个管理的策略,请用设计文档的形式展示。 其中必须包括: 1)用思维导图归纳的分析、解决问题思路;
2)界面及交互流程。
3)加分项: a、可操作的原型; b、接近高保真效果的原型; c、可运行的IPA程序包或APK程序包。
(校招笔试)
19.背景说明:未来的社交信息超级聚合器。未来的移动互联网用户的信息分散在新浪微博,QQ空间,人人, Facebook等多处,你需要在iPad(或Android Pad)平板平台上设计一款聚合软件,把用户身边好友的信息流,其他(通过你对用户情况的分析)信息(如淘宝信息,天气……)整合到一个适合平板阅读的界面中去,需要兼顾起可用性和游戏性。 题目要求:
1)需用思维导图描述分析和解决思路; 2)整理其需求列表;
3)首页界面交互及至少5个主要功能的交互。
(校招笔试)
20.在优酷PC网站或App内设计一个播放列表功能,用户可以将视频添加到播放列表里,产出界面草图
具体要求:
·可以管理已有播放列表,对播放列表内的视频进行编辑和删除
·可以新建播放列表
·可以给播放列表设置名称、修改封面、添加标签和设置简介
·向播放列表添加视频有上传本地视频和添加已经上传的视频两种方式
(社招笔试,20分钟)
21.背景说明:小龙银行现有一个大型的网上银行系统,开通网上银行功能的该行的客户可以在线查看本人银行账户的余额情况、收支明细等资料。目前,客户有了新的需求,希望可以通过网上银行向第三方交付费用,比如向煤气公司缴纳煤气费。具体功能要求如下:
(一) 收款人管理
a、 添加收款人、包括收款人名称和账号,可有多个收款人; b、 删除收款人; c、 更改收款人。
(二) 付款
a、 指定收款人,支付款项的账户,付款金额,付款时间和备注;
b、 可以设定重复付款。重复付款是指一定的金额,按每月、每季度或者每年,自动支付给收款人。
(三) 付款管理
a、 查看付款历史记录;
b、 取消已提交但未处理的付款要求。
题目要求:
请按照以上功能描述,给出一个网上付款的界面设计方案。请提供界面流程图和低保真原型图。
(校招笔试)
22.小江凌是个刚入大学的新生,使用Android手机,平常喜欢下载各种App,月底时发现流量超标,也不知道是哪些App消耗了他的流量,请设计一款Android工具,帮助小明解决他的烦恼。(社招笔试)
23.列举一个你认为最好的订票网站或app,分析其用户类型、核心任务、核心路径、核心页面,并找出你觉得最大的设计问题,结合图文给出设计方案。(校招笔试)
24.列举web或无线设计领域流行的趋势名词,结合实际的案例简要说说你自己的理解。(校招笔试)
25.设计一个未来图书馆,畅想通过多种设计方案满足方便查阅信息的场景。(校招笔试)
26.在携程PC端的订票界面上增加一个接送机模块,
要求:用户可选择是否接送机用户可查看接送机的车型、容纳乘客数、价格车辆类型有经济型、舒适型、豪华型三种,用户可自由选择用户可设置接送机地点,其中机场这个地点根据用户购票情况自动设定,不需要用户设置,也不能修改接机服务用户可设置接机牌文字送机服务用户可在合理范围内设置送机时间要求:不要过分干扰不需要此服务的用户。(校招笔试)
27.移动APP端有哪些独特的交互设计模式?(校招笔试)
28.请举出你工作中遇到最大设计困难是什么,并且说明你是如何解决的(社招面试)
29.假如你的设计方案和上司还有同事发生了争执,请问你该如何解决这种问题(社招面试)
30.在登录界面内,「找回密码」和「忘记密码」哪个文案更好,为什么(社招面试)
31.请列举出5种以上控件或者设计模式可以实现“多个里面选一个”(社招面试)
32.为什么微信没有下拉刷新功能?(社招面试)
33.请列举出你最常使用App,找到其交互的优点和缺点,并对缺点提供改进方案(社招面试)
34.如果在一个特别庄重严肃的场合,你已经提前把手机调整到静音模式,这时候手机还是特别的响了起来。如果你是手机的交互设计师,你会怎么解决这个问题?(校招面试)
35.地铁有车门和防护屏蔽门两道门,列车进站时先开哪个门后开哪个门?列车出站时先关哪个门后关哪个门?为什么?(社招面试)
36.从产品经理接到一个需求后,你接下来准备做什么?(社招面试)
37.产品经理和交互设计师有什么不同?(社招面试)
38.接到多个需求后,你是怎么分配这些需求的优先级(社招面试)
39.互联网公司交互设计师的价值是什么?如何体现和增强交互设计师的价值?(社招面试)
40.系统介绍一下你目前公司的设计流程是怎么样的?(社招面试)
41.你最近在读或者读过哪些设计类书籍、博客、关注哪些设计资源?(社招面试)
42.你是否了解最小可行性产品(MVP)?(社招面试)
43.你的老板给你说想重新改版首页(或APP)并让你给一个设计稿,你会马上问他哪几个问题?(社招面试)
44.什么情况下,你会使用可用性测试?(社招面试)
45.你如何确定你的设计已经‘搞定’了?(社招面试)
46.在你完成线框图后,你怎么和开发人员讨论(开发人员可能没有设计基础)?(社招面试)
47.分享一个你失败的项目,你从中学到了什么?(社招面试)
48.你有反对过什么产品需求吗?另外,如果产品经理只是告诉你要做什么,但不告诉你目的和预算,你会怎么解决这个问题?(社招面试)
49.你更喜欢瀑布流还是敏捷开发过程?为什么?(社招面试)
50.六种水果 ,用户可以多选水果,有几种交互组件形式可以实现?
如果是100种水果,实现多选功能,用以上哪一种交互组件形式 所占屏幕空间最小?
(社招面试)
51.移动端:一个Search Input 实现可以搜索 客户姓名、订单号、客户手机 如何设计相关组件和前后流程(社招面试)
52.设计一个地图APP离线下载的交互界面,此流程中可能报错的情景有哪些?(校招笔试)
53.如何看待拟物化设计和扁平化设计?(校招笔试)
54.有一台能制作各种化式咖啡的自动售卖机,设计一款app应用,可以在附近点单,然后以app为凭证去机器取走咖啡。分析目标用户的常见使用场景,总结方案设计的要点。形式不限。
设计app的信息结构和主要流程界面,并阐述重要的设计细节和为什么这么做。 请提交流程图、界面草图和简单说明来描述你的方案,充分、精确、简要为佳。(校招笔试)
55.一、背景说明:
移动互联网高速发展,很多新产品直接以手机登移动平台进行切入并提供便捷的服务,快速满足用户需求。
思考如下场景,在城市核心地段,某餐厅用餐高峰时,就餐人员较多,服务人员压力较大,无法及时帮助就餐客户进行点餐服务。请设计一款供该餐厅使用的APP,用户可以通过此应用快速解决点餐的需求并缓解服务员人手不够的压力。
二、题目要求:
1.请设计一款移动APP,用户通过扫描二维码,可以下载此应用并且进行点餐的操作。
2.具体要求:
针对以上场景,思考用户快速点餐的需求,并完成手机端APP的设计。
分析商家应如何对用户的点餐的需求进行管理并进行后台的界面流程设计。
用户易用,店方易管理。
从案例中引申或补全的用户需求。
3.终端要求:手机/电脑
三、答题要求:
1.请用思维导图工具或收回的方式表达你的方案思路;
2.分析出用户的需求,使用论述,说明或介绍的方式呈现;
3.分析出典型的用户使用场景,使用手绘稿或故事版的形式呈现并加以说明;
4.使用制图软件导出流程图、界面线框图;
5.论述、介绍、说明以精炼、准确、易懂为佳;
6.请用ppt或pdf格式制作
(校招笔试)
56.绘制流程图:在发送邮件过程中,若附件小于50M,正常邮件界面发送,若大于50M,进入超大附件界面,此时进行判断,条件一:开通手机邮件功能,条件二:安装手机邮件插件。只有在这两条件都满足的情况下,才可以成功发送,否则不成功。(校招笔试)
57.背景说明:用户购买了一款摄像头监控设备,需要将其绑定到易信帐号(一款移动通讯社交软件),激活一个远程监视操控的功能模块,这样就可以用手机控制和查看摄像头了。我们需要设计这个绑定的交互过程。 环境、设备与限制:
a、 安装环境是家里,具有宽带路由器wifi环境;
b、 摄像头设备具有wifi热点功能,可以让其他设备连接该热点,并对其进行设置;
c、 摄像头在设置了家里wifi的用户名、密码之后,也可以连接到家里的无线网络,与网络上的其他设备传输信息;
d、 手机已经安装了易信软件,已经登录了自己的帐号,并且可以使用大部分的手机传感器,例如摄像头(扫一扫)等。
题目要求:
尝试分析可能的交互流程,不仅是易信软件中的,包括手机和摄像头的互动等,从用户拆封摄像头到完成连接绑定为止。要求:详细分析不同可能的流程中,用户认知、习惯、理解和操作上的难点,从用户的观点发现设计的重点难点。
根据以上描述和你的分析,给出你的设计方案,流程图和每个场景或者界面的示意图,并且对上一题中发现的问题进行针对性设计。
(校招笔试)
58.背景说明:微信作为国内最热的移动应用,满足了用户之间沟通,朋友圈交流,资讯订阅等需求,2014年春节的红包发送,引爆一时。现在我的钱包模块集合了众多便捷消费服务。
题目要求:
1) 试论述你对微信红包成功的理念和意义;
2) 阐述你对我的钱包模块设计上的看法;
3) 如果必要,可以提供你对该模块更加合理的方案示意。
(校招笔试)
59.背景说明:移动互联网快速发展,很多新产品直接以手机等移动平台快速切入,引起爆点。Instagram、Snapchat、脸萌等,这些产品都以某一类用户在一定的场景下的需求为切入点。
题目要求:
1) 针对手机平台,设定某一类用户,在某种场景下的需求痛点,设计一款产品;
2) 绘制该产品的信息路径图,并对关键界面进行设计及说明。
方向选取案例:上班族(用户)在地铁上(场景)方便快速读取(痛点)新闻类的产品。 结果:一款集合推送,时间订阅,语音读取的全新产品。
(校招笔试)
60.有用户提出反馈“搜索结果页面,需要将页面拖放到最底才可点击下一页,可否实现翻页置顶或自动反应功能”,如何处理这个问题。(校招笔试)
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。浅谈:文章如何发能快速被收录 - 推酷
浅谈:文章如何发能快速被收录
 中介交易SEO诊断
做网站这一行,文章写了质量也不错,就是久久不收录,这个问题一直让各位站长们头痛,特别是新站没有权重的时候,今天笔者就跟大家分析下文章为什么不收录到收录如何快速收录的原因。再讲讲如何利用SEO快速收录内容。
一、文章为什么不收录
1、完全是新站,新域名,新空间,新程序,这种网站刚开始上线时权重完全为0,蜘蛛来的次数也屈指可数,哪怕更新很多原创文章收录率都相当的低。
2、网站还没开始收录,就想着收录内页,这是不可能的事,蜘蛛先要了解一个网站,然后存入自己的数据库里,最后才会放出,通常都是先首页,果断时间再放出内页。
3、更新没有规律,没有计划,比如:今天早上9点多更新了一篇,后天才更新第二篇,蜘蛛明天来的话就无法找到新的内容。完全不知道网站更新频率。
4、伪原创和采集比较多,原创比较少,这种网站无法得到搜索引擎的友好度。不但质量相当低,而且可能没有任何可读性。
5、关键词堆积,一篇文章为了提高关键词排名,就利用大量的关键词堆积,让文章没有可读性,这种情况不但会引起用户的反感,更加容易让蜘蛛厌恶。
二、如何快速收录
1、原创文章
坚持写原创文章是收录最快的一种方法,百度搜索引擎也明确说明了,蜘蛛对高质量原创文章是相当喜爱的,通常只要是原创文章,只要文章的内容与标题和网站相关,蜘蛛们爬行之后都会收录,哪怕不收录都会存放在数据库里面,在过段时间陆续放出来。所以坚持写原创是每个站长必做的事。
2、高质量外链
仅仅依靠原创文章的话,来的蜘蛛太少了,这个时候还应该依靠一些外链,外链不能是垃圾外链,群发外链等等,最好的办法就是依靠高质量外链提升蜘蛛爬行,并且依靠蜘蛛提升网站整体权重。这里要注意一件事,一条高质量外链剩过千千万万条垃圾外链。
三、增加收录的小技巧
1、首页与内页推荐
首页和内页的旁边可以设置“最新文章,热门文章,推荐文章和随机文章”,这种推荐的文章最好的就是吸引蜘蛛到其他内页里面,降低蜘蛛的跳出率,可以多爬行一些页面,增加内页展现机会,使一些以前蜘蛛没有爬行过的页面也有机会爬行。
2、內链锚文本
锚文本不仅仅可以引导蜘蛛去到其他页面,而且还可以通过锚文本的关键词给其他内页增加权重,提升关键词排行的作用。这个对网站关键词排行和收录是非常有效果的。
3、百度分享
百度站长工具是明确申明了的,百度分享可以更快更好的抓取网站页面,如果一个网站被大量的人分享,那么百度也会认为你是一个好网页,而且可以更多方式的增加外链。
本文来自于谢凯SEO:/post/69.html 本文为原创,转载请注明
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致推酷-IT人专属的聚合推荐阅读工具 on the App Store
Opening the iTunes Store.If iTunes doesn't open, click the iTunes application icon in your Dock or on your Windows desktop.Progress Indicator
Opening the iBooks Store.If iBooks doesn't open, click the iBooks app in your Dock.Progress Indicator
iTunes is the world's easiest way to organize and add to your digital media collection.
We are unable to find iTunes on your computer. To download the free app 推酷-IT人专属的聚合推荐阅读工具 by Jianjia Yu, get iTunes now.
Already have iTunes? Click I Have iTunes to open it now.
推酷-IT人专属的聚合推荐阅读工具
By Jianjia Yu
Open iTunes to buy and download apps.
Description
推酷是专注于科技领域的个性化阅读产品,为广大的极客饭、科技粉、数码控、创业者、程序员、设计师、产品家、运营人提供一站式的专业内容阅读服务。 我们不单单要做科技圈的今日头条,我们要为IT人打造极致专业的高效的传递价值的信息聚合推荐发现方面的产品。-海量内容:推酷聚合了来自门户、博客、论坛、问答等数十万站点,并且每天会新增上百个数据源来不断丰富内容。其中既有科技、创业、数码等方面的新闻资讯,更有设计、编程、营销等专业内容。更为贴心的是,我们还聚合了英文类的优质文章,使大家能第一时间阅读到国外最新的科技资讯以及专业技术文章。-专业主题:推酷以主题组织内容,涵盖十万余细分主题。一键订阅,你能想到的大大小小的主题都在里面。这些主题既是你的兴趣图谱,也可以让你在特定细分专业领域发现更多优质内容拓展视野。 -智能推荐:推酷没有小编,首页推荐的文章由分分钟不停歇的推荐引擎依据你的兴趣图谱生成,使你用最少的时间读到最喜欢的内容。随着你用的时间越久,推荐效果越好。 -待读收藏:有长文不能立即阅读完?一个手势轻松添加到待读文章中。遇到好文收藏,供以后回味品读。 推酷的收藏功能以推刊组织,方便你对收藏的文章分类整理,以形成良好的知识管理习惯。-周刊阅读:推酷拥有科技周刊、创业周刊、设计匠艺、编程狂人、Guru Weekly五大周刊,周一到周五,每天更新一个,将过去一周精华内容集合成刊,非常适合工作忙的人浏览阅读。-细致呵护:离线下载、夜间模式、文章搜索等必备功能是显然不能少的,而细节方面的不断改进是我们努力的方向。没有最好的推酷,只有不断进取追求更好的推酷。推酷并不只是新闻客户端,我们期望通过技术做出更好的阅读产品,使你能更便捷地获取有价值的信息。如果你能从推酷汲取营养有所收获,那我们的付出坚持就值得了。
What's New in Version 3.1.1
1、“我的”Tab新增“阅读历史功能,本地保存最新的100条阅读过的文章记录,过期的会在应用启动时自动删除。2、文章搜索支持搜索关键词记录功能。3、“我的”中的待读文章上会显示待读的文章数,提醒亲来阅读。4、一些小的细节做了改进。
Screenshots
Customer Reviews
内容聚合多,非常好,可以订阅多个站点
省了很多时间在网站之间跳转
Customers Also Bought
This app is designed for both iPhone and iPadFreeCategory: Version: 3.1.1Size: 23.2 MBLanguage: Simplified ChineseSeller: Jianjia YuCompatibility: Requires iOS 7.0 or later. Compatible with iPhone, iPad, and iPod touch.
Customer Ratings
We have not received enough ratings to display an average for the current version of this application.
All Versions:
&&&&&13 Ratings
Discover and share new apps.
Follow us on .
Discover and share new music, movies, TV, books, and more.
and discover new iTunes Radio Stations and the music we love.Android音频开发(2):如何采集一帧音频 - 推酷
Android音频开发(2):如何采集一帧音频
本文重点关注如何在Android平台上采集一帧音频数据。阅读本文之前,建议先读一下我的上一篇文章
,因为音频开发过程中,经常要涉及到这些基础知识,掌握了这些重要的概念后,开发过程中的很多参数和流程就会更加容易理解。
Android SDK 提供了两套音频采集的API,分别是:MediaRecorder 和 AudioRecord,前者是一个更加上层一点的API,它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件,而后者则更接近底层,能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。
如果想简单地做一个录音机,录制成音频文件,则推荐使用 MediaRecorder,而如果需要对音频做进一步的算法处理、或者采用第三方的编码库进行压缩、以及网络传输等应用,则建议使用 AudioRecord,其实 MediaRecorder 底层也是调用了 AudioRecord 与 Android Framework 层的 AudioFlinger 进行交互的。
音频的开发,更广泛地应用不仅仅局限于本地录音,因此,我们需要重点掌握如何利用更加底层的 AudioRecord API 来采集音频数据(注意,使用它采集到的音频数据是原始的PCM格式,想压缩为mp3,aac等格式的话,还需要专门调用编码器进行编码)。
1. AudioRecord 的工作流程
首先,我们了解一下 AudioRecord 的工作流程:
(1) 配置参数,初始化内部的音频缓冲区
(2) 开始采集
(3) 需要一个线程,不断地从 AudioRecord 的缓冲区将音频数据“读”出来,注意,这个过程一定要及时,否则就会出现“overrun”的错误,该错误在音频开发中比较常见,意味着应用层没有及时地“取走”音频数据,导致内部的音频缓冲区溢出。
(4) 停止采集,释放资源
2. AudioRecord 的参数配置
上面是 AudioRecord 的构造函数,我们可以发现,它主要是靠构造函数来配置采集参数的,下面我们来一一解释这些参数的含义(建议对照着我的上一篇文章来理解):
(1) audioSource
该参数指的是音频采集的输入源,可选的值以常量的形式定义在 MediaRecorder.AudioSource 类中,常用的值包括:DEFAULT(默认),VOICE_RECOGNITION(用于语音识别,等同于DEFAULT),MIC(由手机麦克风输入),VOICE_COMMUNICATION(用于VoIP应用)等等。
(2) sampleRateInHz
采样率,注意,目前44100Hz是唯一可以保证兼容所有Android手机的采样率。
(3) channelConfig
通道数的配置,可选的值以常量的形式定义在 AudioFormat 类中,常用的是 CHANNEL_IN_MONO(单通道),CHANNEL_IN_STEREO(双通道)
(4) audioFormat
这个参数是用来配置“数据位宽”的,可选的值也是以常量的形式定义在 AudioFormat 类中,常用的是 ENCODING_PCM_16BIT(16bit),ENCODING_PCM_8BIT(8bit),注意,前者是可以保证兼容所有Android手机的。
(5) bufferSizeInBytes
这个是最难理解又最重要的一个参数,它配置的是 AudioRecord 内部的音频缓冲区的大小,该缓冲区的值不能低于一帧“音频帧”(Frame)的大小,而前一篇文章介绍过,一帧音频帧的大小计算如下:
int size = 采样率 x 位宽 x 采样时间 x 通道数
采样时间一般取 2.5ms~120ms 之间,由厂商或者具体的应用决定,我们其实可以推断,每一帧的采样时间取得越短,产生的延时就应该会越小,当然,碎片化的数据也就会越多。
在Android开发中,AudioRecord 类提供了一个帮助你确定这个 bufferSizeInBytes 的函数,原型如下:
int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat);
不同的厂商的底层实现是不一样的,但无外乎就是根据上面的计算公式得到一帧的大小,音频缓冲区的大小则必须是一帧大小的2~N倍,有兴趣的朋友可以继续深入源码探究探究。
实际开发中,强烈建议由该函数计算出需要传入的 bufferSizeInBytes,而不是自己手动计算。
3. 音频的采集线程
当创建好了 AudioRecord 对象之后,就可以开始进行音频数据的采集了,通过下面两个函数控制采集的开始/停止:
AudioRecord.startRecording();
AudioRecord.stop();
一旦开始采集,必须通过线程循环尽快取走音频,否则系统会出现 overrun,调用的读取数据的接口是:
AudioRecord.read(byte[] audioData, int offsetInBytes, int sizeInBytes);
4. 示例代码
我将 AudioRecord 类的接口简单封装了一下,提供了一个 AudioCapturer 类,可以到我的Github下载:
这里也贴出来一份:
COPYRIGHT NOTICE
Copyright (C) 2016, Jhuster &lujun.&
/Jhuster/Android
@license under the Apache License, Version 2.0
AudioCapturer.java
@version 1.0
import android.media.AudioF
import android.media.AudioR
import android.media.MediaR
import android.util.L
public class AudioCapturer {
private static final String TAG = &AudioCapturer&;
private static final int DEFAULT_SOURCE = MediaRecorder.AudioSource.MIC;
private static final int DEFAULT_SAMPLE_RATE = 44100;
private static final int DEFAULT_CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO;
private static final int DEFAULT_AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT;
private AudioRecord mAudioR
private int mMinBufferSize = 0;
private Thread mCaptureT
private boolean mIsCaptureStarted =
private volatile boolean mIsLoopExit =
private OnAudioFrameCapturedListener mAudioFrameCapturedL
public interface OnAudioFrameCapturedListener {
public void onAudioFrameCaptured(byte[] audioData);
public boolean isCaptureStarted() {
return mIsCaptureS
public void setOnAudioFrameCapturedListener(OnAudioFrameCapturedListener listener) {
mAudioFrameCapturedListener =
public boolean startCapture() {
return startCapture(DEFAULT_SOURCE, DEFAULT_SAMPLE_RATE, DEFAULT_CHANNEL_CONFIG,
DEFAULT_AUDIO_FORMAT);
public boolean startCapture(int audioSource, int sampleRateInHz, int channelConfig, int audioFormat) {
if (mIsCaptureStarted) {
Log.e(TAG, &Capture already started !&);
mMinBufferSize = AudioRecord.getMinBufferSize(sampleRateInHz,channelConfig,audioFormat);
if (mMinBufferSize == AudioRecord.ERROR_BAD_VALUE) {
Log.e(TAG, &Invalid parameter !&);
Log.d(TAG , &getMinBufferSize = &+mMinBufferSize+& bytes !&);
mAudioRecord = new AudioRecord(audioSource,sampleRateInHz,channelConfig,audioFormat,mMinBufferSize);
if (mAudioRecord.getState() == AudioRecord.STATE_UNINITIALIZED) {
Log.e(TAG, &AudioRecord initialize fail !&);
mAudioRecord.startRecording();
mIsLoopExit =
mCaptureThread = new Thread(new AudioCaptureRunnable());
mCaptureThread.start();
mIsCaptureStarted =
Log.d(TAG, &Start audio capture success !&);
public void stopCapture() {
if (!mIsCaptureStarted) {
mIsLoopExit =
mCaptureThread.interrupt();
mCaptureThread.join(1000);
catch (InterruptedException e) {
e.printStackTrace();
if (mAudioRecord.getRecordingState() == AudioRecord.RECORDSTATE_RECORDING) {
mAudioRecord.stop();
mAudioRecord.release();
mIsCaptureStarted =
mAudioFrameCapturedListener =
Log.d(TAG, &Stop audio capture success !&);
private class AudioCaptureRunnable implements Runnable {
public void run() {
while (!mIsLoopExit) {
byte[] buffer = new byte[mMinBufferSize];
int ret = mAudioRecord.read(buffer, 0, mMinBufferSize);
if (ret == AudioRecord.ERROR_INVALID_OPERATION) {
Log.e(TAG , &Error ERROR_INVALID_OPERATION&);
else if (ret == AudioRecord.ERROR_BAD_VALUE) {
Log.e(TAG , &Error ERROR_BAD_VALUE&);
else if (ret == AudioRecord.ERROR_INVALID_OPERATION) {
Log.e(TAG , &Error ERROR_INVALID_OPERATION&);
if (mAudioFrameCapturedListener != null) {
mAudioFrameCapturedListener.onAudioFrameCaptured(buffer);
Log.d(TAG , &OK, Captured &+ret+& bytes !&);
使用前要注意,添加如下权限:
&uses-permission android:name=&android.permission.RECORD_AUDIO& /&
音频开发的知识点其实挺多的,一篇文章也无法详细地展开叙述,因此,不够全面和详尽的地方,请大家搜索专业的资料进行深入了解。文章中有不清楚的地方欢迎留言或者来信 lujun. 交流,或者关注我的新浪微博@卢_俊 或者 微信公众号 @Jhuster 获取最新的文章和资讯。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 文章采集软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信