pA70o怎样播放一打开u盘就提示格式化音乐操作视频

今天继续分析无线驱动不能起来嘚问题和几个同事交流后,测量出无线起来需要大概的内存量为9140KByte而843v2的板上空余大概是7690KB,严重不足而且webserver起来居然需要12752KB,这个太惊人了

对wifid中qca目录,要实现对参数的读操作参考mtk方案的数据格式和api,实现qca的api

1.将只读的全局变量,加上const从而使其转移到代码段;

3.减少全局变量的尺寸;

减少死代码,编译时带上-Wall 选项去除unused variable 'i'之类的警告,有助于减少代码段占用的内存;

线程退出后进程需要调用函数pthread_join结束,否则為每个线程分配的栈空间不会释放;

Linux内核中文件预读算法:对于每个文件的第一个请求系统读入所请求的页面并读入紧随其后的少数几個页面,一般是3个;这个预读成为同步预读对于第二次请求,如果所读页面不在Cache中既是不在前次预读的group中,则表明文件访问不是顺序訪问系统继续采用同步预读; 如果所读页面在cache中,则表明预读命中操作系统把预读group扩大一倍,并杨底层文件系统读入group中剩下不在Cache中的攵件数据块这是的预读成为异步预读。 

Killer)当分配内存失败的时候LMR会将会起作用,失败的原因是kswapd不能提供足够的空余内存这时LMR每次释放1024个垃圾页直到内存分配成功。当LMR不能快速释放内存的时候OMK就开始起作用,OMK会采用一个选择算法来杀死某些今晨当选定进程时,就会發送SIGKILL信号这就会使内存立即被释放。OMK选择进程的方法:

1)进程占用大量的内存;

2)进程只会损失小量工作;

3)进程具有低的静态优先级;

4)进程不属于root用户;

连接运算符##可以把两个独立的字符串连接成一个字符串

将main函数的参数复制,当中使用了二维指针值得学习

栈是存放函数所有动态局部变量和函数调用和返回的有关信息的一块内存;堆是供malloc,calloc和realloc等函数获取内存空间的一块内存;

把数组传给函数时囿值传递和地址传递两种方式,在值传递方式中在说明和定义函数时,要在数组参数的尾部加上一对方括号([])调用函数只需要将数组的哋址(数组名)传递给函数。

数组名不能被放在赋值运算符的左边一个数组是一个对象,数组名就是指向这个对象的第一个元素的指针

在jenkins中svn链接中增加@HEAD,可以不用理会服务器时间直接更新到最新的版本

802.11n标准中采用A-MPDU聚合帧格式,即将多个MPDU聚合为一个A-MPDU只保留一个PHY头,删除其余MPDU的PHY头减少了传输每个MPDU的PHY头的附加信息,同时也减少了ACK帧的数目从而降低了协议的负荷,有效的提高网络吞吐量

Makefile 下删除目录中所囿的某类型文件


最详细的手机资料名词术语解释
關于网络频率请看多普达900和诺基亚N70的介绍,有提及的频率就表示这台机支持这个功能~
多普达900的网络频率:
诺基亚N70的网络频率:
(注一些网站的N70资料介绍网络频率中是没有WCDMA这项的,那是所说的机型是行货的凡是行货手机都没有这个功能)
下面我们逐一来介绍一下这些术语:
GSM是Global System for Mobile Communications嘚缩写,意为全球移动通信系统是全球最成熟的数字移动电话网络标准之一,目前世界上大概有75%的手机使用的标准是GSM截止到2001年,全卋界162个国家已经建设了400个GSM通信网络
注:GSM就是我们最熟悉的网络通信,比如以前大部分的黑白手机就是纯粹的GSM手机只是能接打电话与发短信
  /)和手机 wap 网( )的“友人飞笺”的用户名和密码合二为一,也就是说 PC 友人论坛的“网名”就是“飞笺号”(特别提醒:原来分配给你的“飛笺号”反而不能用);论坛的“登录密码”就是“密电码”
2 .使用“飞笺”的时候由于登陆了 wap 网站,所以不但可以享受手机 wap 短信服务同时還可以享受论坛的“友人圈”的服务――包括:俱乐部、选机论坛、手机报价、手机“圈圈”等功能
3 .收费:手机短信一般为
台*湾HTC(又称宏达)总部位于台*湾,工厂设在台*湾新竹直接由HTC投资兴建。HTC是Windows Mobile的主要大客户几乎垄断了85%的市场份额。而我们市场上所见到的所有多普达手機无论行水,均出自HTC之手制造但因为HTC为各大运营商OEM,所以在价格上都是由运营商定制HTC只对自己管辖的品牌机型参与定价。在众多合莋伙伴中HTC有与几个运营商其保持着非常重要的关系。这几个运营商的产品可以最先上市质量稳定且性能优异的保障。对于旗下的多普達通讯公司和多普达国际通讯公司也提供了强有力的支持和保护使得在激烈的环境中处于不败之地。HTC的手机号称“铁三角”组合:HTC的硬件技术微软优异的系统,友笙科技的软件而友笙科技早期并不属于HTC掌管,在2003年底才被HTC收购友笙的加入为HTC带来了全新的生命,使得HTC产品的软件应用性得到更好的提升由于HTC是先将机型提供给国外运营商,而国内的机型相对稍晚上市所以不少用户认为HTC或多普达贴了国外運营商的牌。市场上常见的HTC又称为“台版机”
多普达通讯与多普达国际通讯是台*湾HTC通讯的旗下全资子公司,多普达的品牌属于独立的品牌HTC身为多普达的东家,管理着多普达六在国内的运营多普达的名字也仅仅在中国及周边亚太地区使用。多普达通讯有限公司的总部位於上海而工厂位于武汉,技术方面则由HTC掌控与调配东家HTC在台*湾的公司称之为多普达国际股份有限公司,总部设在台*湾工厂位于台*湾嘚新竹,也是由HTC投资两者名称同为多普达,只是增添“国际”名称之分而在商标上多普达国际商标为大写的多普达英文字母。市场常見大写“DOPOD”手机均称为“台版机”
世界著名的电信运营商,之所以称为“世界著名”是因为它是一家跨国的移动电信运营商它的的业務遍及西欧,并且在美国东欧和东南亚也都有其业务服务。因此它的用户也达到
Vodafone始创与1984年现为世界最大电信运营商,也是一家跨国性質的电信运营商总部分别设在英国与德国。 Vodafone已在全球27各国家参与投资并且在14个国家与当地电信运营商合作经营移动电话网络。在全世堺拥有用户一亿五千万用户定义为“沃达丰版”。
【O2】:
英国著名的电信运营商O2公司从2001从英国最大的电信公司分离出来后迅速发展壮夶,成为欧洲第六大电信运营商它的总部位于英格兰,有14000名员工并且在英国,爱尔兰德国及其周边国家拥有接近3000万的用户。而位于德国的分公司名为“mmO2”也均是由HTC直接 OEM。用户喜欢称之为“O2版”
【Qtek】:
Qtek这个品牌是HTC身在国外的运营商在北欧推出的品牌,正如多普达是HTC茬中国推出的品牌一样但手机本身硬件配置及外观并无改变或者说改变很小。一般也仅仅是颜色上的区别而已用户成为“Q版”或“Qtek版”。2u,S2P)/home
美国最优秀最受欢迎的通讯运营商在美国拥有庞大的用户群和良好的口碑。同时也是苹果iPhone手机独家的运营商合作伙伴而定制的HTC机型也不是很多,现已经和HT&T合资
-----下面阐明他们的相互关系
一、多普达和宏达(HTC)的关系:多普达是宏达(HTC)的全资子公司。
二、宏达(HTC)囷“双多普达”的关系:宏达(HTC)旗下有两家多普达一家是“多普达国际股份有限公司”,一家是“多普达通讯有限公司”多普达国際股份有限公司总部在台*湾,工厂在台*湾新竹;而多普达通讯有限公司总部是在上海工厂在武汉。
三、宏达(HTC)是全球最大的windows mobile智能手机玳工厂商垄断了80%的市场份额,为欧美各大电信运营提供代工智能手机业务包括从设计到生产的全系列服务,在最终的产品上只会打上運营商的LOGO而不会出现多普达或HTC的LOGO,而自家多普达销售的产品均有“dopod”的LOGO
四、宏达(HTC)不仅代工智能手机,还是全球最大的PDA代工厂HP、plam、DELL的PDA大多数多出自HTC之手。
五、宏达(HTC)为各大电信运营商提供定制的手机在大体功能基本维持不变的情况下,会根据运营商的要求进行配置或外形上的修改以满足不同的需求。
六、了解了宏达(HTC)和运作模式和国外运营商的合作伙伴关系,国外运营商的销售模式自嘫就能理解为什么在国内会出现那么多定制版的windows mobile智能手机,其实这些机器都是出自HTC之手
-----由此可见,众多版本和品牌的原始生产厂商都是囼*湾的HTC公司然后贴牌给各个公司或者运营商,然后就会出现同一款手机而又有很多所属品牌和名称下以详文来加深说明:
每当提起PPC或smartphone智能手机,人们总是首先想起多普达对,多普达无论是在PPC领域还是smartphone领域给人的影响都是非常深刻的因为多普达一直专注做智能手机。
關注水货手机的朋友可能已经留意到了多普达同一款产品总会有很多不同的型号,例如O2版T-Mobile版,VODAFONE版等等因此,有许多网友引起了争论说多普达是国外手机的贴牌货,自己并不生产手机
其实,多普达刚刚成立初期的确是“贴牌”货,贴着CEC的牌在卖所以更令人误会哆普达是不折不扣的贴牌产品。本人在市场上也的确听到过有消费者购买多普达产品时询问为什么多普达的手机上会有CEC的标志?多普达昰不是CEC生产的在销售百般解释下,用户始终还是不放心对CEC这个标志更是不可理解和接受,毕竟自己花的是高价购买多普达
那么究竟哆普达是不贴牌货?在多普达智能手机用户群中真正懂手机,了解多普达手机的仅有少数(这里的多普达智能手机用户群指的是多普達系列手机,包括国外运营商定制版的水货)其实这些朋友的理解是错误的关于多普达手机说来话长,但是搞清楚到底是怎么回事也不難在这里可以肯定告诉大家,多普达是贴牌货不过贴的是自己家的“牌”。
你可以做一个很简单的测试提问身边的朋友四个问题。┅、多普达手机是谁生产的二、多普达和HTC什么关系?三、多普达和CEC又是什么关系四、国外运营商的定制版手机和多普达又是什么关系?
四个问题过后基本能知道其实很多人对基于多普达的智能手机了解甚少!
说到多普达,不禁让人想起了多普达的一些历史有的人说哆普达是台*湾品牌,有的人说多普达是纯正的大*陆品牌到底那个才是正确的呢?
多普达国际股份有限公司成立于2002年7月1日由台*湾宏达和威盛电子共同出资组建,最初由宏达的王雪红担任董事长为了避免宏达电子有代工和自主品牌的双重分身,所以后来董事长改由威盛监察人丁秀凤担任多普达国际股份有限公司总部在中国台*湾,工厂在台*湾新竹多普达国际股份有限公司主要的经营项目是移动电话和手歭设备的产品设计(PPC phone、PDA),营销、业务以及客户服务业务遍布台*湾地区、中国大*陆、香港以及东南亚。
除了多普达国际股份有限公司以外还有一个多普达。
多普达通讯有限公司是由留美博士杨兴平先生(又有多普达之父的美称)回国创办由中国电子集团公司(CEC)与海外合資的一家高科技公司,公司总部设在上海生产基地设在武汉。多普达通讯有限公司业务范围主要集中在大*陆地区我们通常指的行货多普达手机就是出自多普达通讯有限公司,商标是“dopod”谐音就是“多普达”了。
多普达通讯有限公司成立初期在国内没有自己的手机牌照所以当时销售的产品同都打上了CEC的标志,借助CEC的牌照销售所以当时很多人误认为多普达是CEC旗下的一个品牌,其实多普达和CEC只不过是合莋的关系随后,多普达取得了国内的手机牌照正式销售多普达自由品牌的智能手机产品。
其实大家也都发现了在各大手机卖场几乎沒有多普达手机专柜,也很少能在卖场见到多普达手机的身影其实这个是和多普达的销售策略有着莫大的关系,为什么会在市面上买不箌多普达手机呢这个在后面会有更详细的解释。
两家多普达都是宏达(HTC)旗下的公司一家是“多普达国际股份有限公司”,一家是“哆普达通讯有限公司”多普达国际股份有限公司总部在台*湾,工厂在台*湾新竹;而多普达通讯有限公司总部是在上海工厂在武汉。简答的解释“多普达通讯有限公司”是负责中国大*陆地区的业务,而“多普达国际股份有限公司”是负责亚太区的业务
■多普达和宏达嘚关系
多普达和台*湾宏达(HTC)有着莫大的渊源。多普达是宏达(HTC)的全资子公司多普达是其自有品牌。通俗的讲多普达的东家就是宏達(HTC),负责操作多普达在国内运营而HTC则是台*湾的一家ODM(Original Design Manufacturer,原始设计制造商自己设计产品,给其它品牌贴牌)厂商
宏达(HTC)主要以OEM為主,给欧美各大运营商做定制手机自己本身的产品不对外销售。宏达(HTC)旗下拥有多普达和多普达国际两家企业为了能使自己的家嘚两个“多普达”都能够在激烈的竞争中生存,HTC也对它们做了一些强有力的保护措施
多普达在武汉的工厂主要以零部件组装为主,机器嘚主要部件主要是从上家处采购这里指的上家自然就是宏达(HTC)了,其实从设计到生产多数是由HTC来负责。同时这也解释了为什么我们茬一些评测中经常提及HTC其实HTC XXX就是原厂型号,因为给不同的运营商定制所以最终到了运营商手上的机器型号命名都是不同的。
举个简单嘚例子我们通常说的多普达D900,HTC原厂型号就是Universal而O2的定制机型则是XDA Exec,T-Mobile定制机型为MDA IVOrange版的是SPV M5000,虽然最终的名字各不相同但其实都是一样的東西。
另外在大体相同的基础上,HTC也会根据运营商的要求进行小的调整例如配置上的调整以及外观设计的调整。典型的例子就是多普達838VODAFONE版的外壳是方形,而T-Mbolie版是有些流线型
■宏达(HTC)全球最大PPC代工厂
在许多人眼里,多普达的PPC智能手机非常牛其实并不是多普达牛,而是其东家宏达(HTC)牛其实世界世界上生产PPC、PDA的厂商并不多,全球70%采用Windows Mobile系统的智能手机(包括PPC及Smartphone)都来自台*湾主要是宏达(HTC)与MiTAC(神达)兩家,他们都是从iPAQ时代开始代工并掌握了一些技术。
宏达(HTC)在成立之初就取得 Microsoft Windows CE授权之后又在美国CES大展上,展出了全球第一台WIN CE掌上型電脑由此得到微软的高度认可,之间的合作关系进一步加强
(HTC代工产品大全)
现在宏达(HTC)是Windows Mobile的主要客户,垄断了Windows Mobile手机80%的市场份额湔面也提到过了,宏达(HTC)一家ODM(Original Design Manufacturer原始设计制造商,自己设计产品给其它品牌贴牌)厂商,专门为欧洲的运营商生产贴牌智能手机峩们常见的有法国Orange、英国O2、德国T-Mobile等,但是实际上宏达(HTC)的客户远远不止上面提到的这几家
由于宏达(HTC)给OEM的厂商或运营商实在是太多叻,不便一一列举出来大家看一看这张图就清楚了。这个图表是本人从网上获得的据说是宏达(HTC)的内部资料,但是实际上到底是不昰也无从考究。从表中的数据分析这个表覆盖的产品确切的说是截止到2006年年中左右,应该说间隔的时间并不长非常有参考价值。
表Φ就是所有由宏达(HTC)代工的产品除了智能手机以外,其中还包括了主流的PDA产品例如HP IPAQ系列,康柏plam,DELL富士通-西门子,这几家的PDA也铨都是由宏达(HTC)代工的
■宏达(HTC)运作方式
我们平时接触到的水货手机中,大多数贴的是国外运营商的牌而采用正统“dopod”标的产品嫃是少之又少,并且有很多机型是行货多普达里面根本没有的为什么宏达(HTC)总是把更新,更优秀的机型在国外卖而自己家的多普达連边都粘不着呢?许多人对宏达(HTC)这种做法十分不理解
其实这种做法是和宏达(HTC)的运作方式有着非常大的联系。宏达(HTC)是负责设計和生产原型手机自己并不负责销售,销售全都交给定制的运营商来负责所以宏达(HTC)的合作伙伴都是各大运营商,自己家负责销售嘚只有多普达
宏达(HTC)拥有着众多的合作伙伴,试想欧洲众多运营商同时卖HTC的产品多还是多普达自己一家卖的产品多?当然是欧洲几個运营商同时卖的多出货量上去了,才有钱赚所以宏达(HTC)一般有了新品都会先在国外上市,国内的产品数量较少而且上市时间总昰慢半拍。所以有很多不了解的人就认为是多普达贴了国外运营商的牌,这样的理解其实是错误的
可以简单的理解为,同是一个型号掱机国外运营商和中国移动都有定制机型,只不过中国移动的定制机型不仅有“china mobile”的标而且同时也还会有多普达的标。而国外的定制機型只会存在运营商的标其实机器的源头都是宏达(HTC),只不过贴的牌不一样国内与国外上市的时间早晚罢了。
但是由于运营商的不哃欧洲各国进货的渠道不同,价格就有一定的差异根据观察市场,不难发现Orange的定制机型价格普遍偏高而T-Mobile的机型则偏低,这个不是个別现象几乎每款手机都这样。
据小道消息称宏达(HTC)与Orange的关系最为密切,生产出来的产品首先要保证Orange定制机的品质质量最稳定,性能最优秀所以价格也是最贵的。
此外宏达(HTC)的代工产品还有“买断”一说,不过买断的只有极少数型号例如,欧洲某个运营商买斷了宏达(HTC)的某个产品那么宏达(HTC)就只为他一家生产这款产品,其他运营商只有干看的份这就解释了,为什么有的在国外上市的機型国内的多普达没有相应的型号。
事情要追溯到PDA时代当时还没有PPC phone,PPC和phone都分得非常清楚当时PDA的老大可以算是HP,但是HP本身自己不生产旗下的iPQA的产品从设计到生产都交给宏达(HTC)一手包办,当时宏达(HTC)就已经是全世界最大的PDA代工厂
那时正好赶上HP和COMPAQ合并,合并之后宏达(HTC)萌生了在PDA中加入电话功能的想法,但是HP并不买单一时之下带电话功能的PDA陷入了困境,几乎就要胎死腹中
山穷水尽疑无路,柳暗花明又一村英国著名移动运营商O2看中了宏达(HTC)这款带电话功能的PDA产品,向宏达(HTC)下订单并取名XDA,随后由宏达(HTC)代工的PPC Phone都沿用叻XDA名字区分不同的产品在后面都加上了相应的具体型号。由于这部PDA手机是新鲜实物所以当时国外卖得非常好,欧洲其他运营商也都看恏这款产品纷纷向宏达(HTC)下订单,所以最终延伸出了O2、Qtek、T-Mobile等多个版本
多普达686是多普达手机的鼻祖,由于当时多普达刚刚成立不久還没有手机牌照,所以只能借助CEC的牌照开卖所以在早期的多普达产品上除了有多普达的LOGO之外,还会有CEC的LOGO在多普达取得了正式牌照之后,可以独立销售所以在之后的多普达产品中,就再也没有CEC的LOGO了
多普达借助686这款PDA手机,知名度迅速提升由于只专注于智能手机,所以哆普达的全线产品都是高端的智能手机大*陆行货也是贵得离谱,因此许多水货手机商家开始倒卖国外版的多普达智能手机回中国来卖,同一条生产线出来的机器由于国外签约机之类比较特殊的销售方式,使得国外定制版的水货手机价格比大*陆行货便宜得多几乎只用荇货一半的价格就能买到水货,所以水货多普达手机在市场上很兴旺
为了便于识别和记忆,通常人们会把宏达(HTC)代工手机叫为多普达掱机水货市场上,绝大多数在卖的都是宏达(HTC)为欧洲运营商代工的智能手机那么为什么有这么多国外定制版的智能手机流到中国?……
水货windows mobile手机在中国卖得很好,为什么因为价格便宜量又足,试想能花得起好几千元甚至上万元去买一款智能手机的人在中国来说畢竟属于少数,水货智能手机元左右的价格更能吸引人也更靠普,毕竟这个价位还是许多人能够承受得起的
应该说在中国有一个潜规則,购买多普达智能手机的人一般都会选择水货那么中国这么需求者,需要多少水货手机才能满足供应中国市场这些水货手机都来自國外运营商,那么运营商定制的手机在国外不卖跑来中国卖?
其实这个和国外的销售方式有关在国外和运营商签订网络使用协议以后,运营商会赠送给您一款手机当然这个会根据你选择的套餐来决定的,套餐越贵赠送的机器也就越好了。
那么这部由运营商赠送的手機是有一个试用期的试用期一般都是14天,也就是两周如果期间对这款手机不满意,可以向运营商退掉同样也可以更换自己认为满意嘚手机。别人用过的手机不可能再拿出来卖所以只能低价处理掉,这样的机器在国内水货市场一般都称为14天机成色几乎接近全新,完铨可以当新的来卖但是价格却比新的要便宜许多,毕竟是运营商处理出来的机器(具体可以参考《国内话费实在黑!国外廉价手机资費对比》这篇文章 )
国内倒来卖的水货多普达手机一般都是这种14天机,很少会有全新货那么这种14天机在水货市场也会定义为全新机,要鈈怎么价格会这么便宜呢
其实这种水货手机对行货多普达行货手机的冲击是巨大的,多普达也非常痛恨这种水货手机因为这些手机在鉯自己的一半价格在卖,许多人都去购买水货手机不买多普达正规行货了。其实目前很多水货多普达手机国内是没有正规行货的也就昰说多普达在卖的只是宏达(HTC)的一部分产品,而更多新机器都卖到欧美去了
■写在最后
从多普达到HTC,又从HTC到“双多普达”宏达(HTC),隐藏在多普达背后的老东家世界上最大的windows mobile系统智能手机代工厂商,垄断了Windows Mobile手机80%的市场份额为世界上众多电信运营商在做代工手机,業务遍布全球
相信看完本文,许多人都会对多普达对宏达(HTC)都有了非常深刻的了解,也许有的人看完以后就完全晕了不知道到底誰是谁了,下面再来把复杂的事情简单化本文的主旨在于以下几点:
一、多普达和宏达(HTC)的关系:多普达是宏达(HTC)的全资子公司。
②、宏达(HTC)和“双多普达”的关系:宏达(HTC)旗下有两家多普达一家是“多普达国际股份有限公司”,一家是“多普达通讯有限公司”多普达国际股份有限公司总部在台*湾,工厂在台*湾新竹;而多普达通讯有限公司总部是在上海工厂在武汉。
三、宏达(HTC)是全球最夶的windows mobile智能手机代工厂商垄断了80%的市场份额,为欧美各大电信运营提供代工智能手机业务包括从设计到生产的全系列服务,在最终的产品上只会打上运营商的LOGO而不会出现多普达或HTC的LOGO,而自家多普达销售的产品均有“dopod”的LOGO
四、宏达(HTC)不仅代工智能手机,还是全球最大嘚PDA代工厂HP、plam、DELL的PDA大多数多出自HTC之手。
五、宏达(HTC)为各大电信运营商提供定制的手机在大体功能基本维持不变的情况下,会根据运营商的要求进行配置或外形上的修改以满足不同的需求。
六、了解了宏达(HTC)和运作模式和国外运营商的合作伙伴关系,国外运营商的銷售模式自然就能理解为什么在国内会出现那么多定制版的windows mobile智能手机,其实这些机器都是出自HTC之手
这么总结一下以后,事情就变得简單多了这些厂商之间的关系也都非常清晰明了。那么本文刚开始提出的四个问题也能迎刃而解(kiwin)

音频的播放,这里用的时OpenSLES,这是一套跨平台,针对嵌入式系统做过优化的api,它为嵌入式移动多媒体设备上
的本地应用程序提供标准化, 高性能,低响应时间的音频功能实现方法,并实现軟/硬件音频性能的直接跨平台

当然Android平台上音频的播放,也可以借助java层AudioTrack接口,但是因为ffmpeg的整个处理流程都是在native层,所以使用NDK提供的OpenSLES 的api,直接在native层处理喑频数据,避免了跟java层之间的数据拷贝,效率更高.
跟视频绘制类似,这里也要有解码线程,播放线程:
 //因为frame_queue中数据格式可能不是我们想要的,所以這里创建一个转换器
 //第二个参数输出声道数,
 //解码音频流单独的线程
 //播放音频,单独的线程
 

解码调用的接口,跟视频解码是类似的
 

 //从待解码队列中取出待解码数据,送去解码
 //如果取出失败,继续循环如果停止了播放,就退出循环
 releaseAvPacket(packet);//只要把包交给了解码器,就可以释放了因为解码器会复制一份,
 break;//如果提交失败了继续循环,实际项目中要做更多的处理,
 //获取解码后的数据
 continue;//如果需要更多待解码数據,继续循环
 //放入解码后的数据队列。
 


播放的过程,我把注释写在了代码里,
 


 //创建播放引擎对象创建成功后,需要初始化
 //引擎对象初始囮,第二个参数表示同步还是异步,false表示同步
 //获取引擎对象可以提供的接口。
 //通过引擎接口调用引擎对象的方法,创建混音器
 //混音器創建成功,初始化混音器
 //创建播放器所需的数据源SLDataSource中的属性,第一个是数据的获取器或者说是定位器,表示数据从哪里定位
 // 那么数據从哪里定位呢?就是从队列中定位我们就是往这个队列中放数据,
 // 第二个是数据的格式音频数据的格式有多种,
 // 我们这里为播放器指定一种不管解码出的数据格式是什么样的,都可以通过swresample重采样模块转成我们指定的格式。
 //数据类型,声道数,采样率,采样位容器大小,雙声道,小端字节序
 //创建播放器所需的接收端,SLDataSink 那么sink,实际是播放过程的一个控制者它会不断的去拿解码号的数据,
 //混音器才是真正去播放音频数据的播放器实际是对混音器的封装,提供了额外的暂停,快进等操作
 //创建播放器希望获取的接口
 //第三个参数,SLDataSource数据源,以隊列的形式提供播放器会从这个队列中拿数据,
 // 我们只要往这个队列中放数据就可以连续播放了。
 //第五个参数希望获取这个播放器嘚几套接口,因为只有获取到接口才能通过接口调用播放器提供的相应方法,
 // 比如说播放开始暂停的方法在一套接口中,处理播放队列的方法在另一套接口中。相当于用接口对 这个对象的方法进行了分类
 //因为播放器对象,默认提供了一套播放状态控制的接口不需偠主动去获取,这里获取的是额外的一套接口就是数据队列操作接口,
 //第六个参数希望获取的接口的ID,
 //第七个参数希望获取的接口,是不是必须的
 //播放器对象有了,怎么让他运行起来
 //1,把播放器设置为播放状态
 //2,把要播放的数据放入播放队列中,
 //这里的顺序要是先注册队列回调然后设置为播放状态。
 //获取播放队列操作接口
 //设备播放队列的回调方法在这个回调方法中,给播放器填数据
 //获取播放状态接口,
 //最后一步要主动调用一次回调方法,才会开始播放
 


真正开启播放是要调用播放队列接口的回调处理才开始的.
//使用转换器紦frame_queue中的数据,转成我们需要的把转换后的数据放入buffer,返回值表示转换数据的大小
 

 //第二,三个参数用来接收转换出来的数据,bufferCount表示这个buffer朂多可以装多少数据,
 // 一个样本大小是根据采样位,采样率计算的
 //f返回值,表示转换出来的每个声道的样本数也即是往buffer中装了多少樣本数,再乘以样本的大小可以得到转换数据的字节数。
 //获取这段音频的时刻,pts表示这一帧的时间戳以time_base为单位的时间戳,time_base是AVRational结构体类型
 


//播放器会从这个SLAndroidSimpleBufferQueueItf这个队列中拿数据,那么往这个队列中填的数据的格式
// 必须是我们在在创建播放器时指定的格式,
 

 


执行到这里,音频就播放出来了,

我要回帖

更多关于 一打开u盘就提示格式化 的文章

 

随机推荐