android开发过程中遇到的小问题
转自:http://www.sctarena.com/Article/Article.asp?nid=5070
1、在编写xml布局的时候,总是提示[Accessibility] Missing contentDescription attribute on image的警告信息
解决方法:
- <ImageView
- android:layout_width="210dp"
- android:layout_height="32dp"
- android:layout_centerHorizontal="true"
- />
修改为:
- <ImageView
- android:layout_width="210dp"
- android:layout_height="32dp"
- android:layout_centerHorizontal="true"
- android:contentDescription="组件的描述内容"
- />
2、在android编写布局的时候,我们有时候需要将一个类封装成一个组件来使用,那么体现在界面上的方法有两种,1.xml布局,2.代码编写
第一种:xml布局
如果是xml布局需要注意两点
a.类的构造方法中必须添加
- public 类名(Context context, AttributeSet attribute) { }
b.在xml中的形式如下: http://www.sctarena.com/java/
- <包名.类名
- 属性
- />
第二种代码布局,只需要构造
- public 类名(Context context) {
- }
3、在播放音频的时候使用AudioTrack来实现,但是多次实现audioTrack.play,audioTrack.stop会出现如下现象:
- obtainBuffer() track 0x17c418 disabled, restarting
原因为:
- 在循环使用AudioTrack.write(byte[] audioData, int offsetInBytes, int sizeInBytes)写入音频数据时,由于网络原因和处理数据代码逻辑乱的原因,音频数据没及时发送过来
解决方案:
这个方法可能只限于我现在产生这种现象的解决方案:
描述:通过socket来接收aac数据,我取一帧来然后通过faad来解码成pcm码流,然后放在audioTrack里面播放,但是我是先初始化audioTrack.play,然后接收aac数据,调用faad解码成pcm数据,最后把pcm数据写到audioTrack里面播放声音。
解决方法:
造成这种现象的原因在上面已经写出,由于数据没有及时的写入造成的,所以我这边只初始化audioTrack实例,但不马上进行audioTrack.play(),只有第一次来数据的时候才进行audioTrack.play,这样就解决了我现在的问题。
- /*
- * 播放音频
- */
- public void playvideo(byte[] data){
- if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
- aAudio.play();
- aAudio.write(data, 0, 8192);
- }else if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_PLAYING) {
- aAudio.write(data, 0, 8192);
- }
- }
android开发过程中遇到的小问题的更多相关文章
- Android开发过程中在sh,py,mk文件中添加log信息的方法
Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...
- Android开发中实现桌面小部件
详细信息请参考原文:Android开发中实现桌面小部件 在Android开发中,有时候我们的App设计的功能比较多的时候,需要根据需要更简洁的为用户提供清晰已用的某些功能的时候,用桌面小部件就是一个很 ...
- android开发过程中遇到的坑
在android的学习过程中,会有很多坑,我会把我遇到的,一一列下来,方便后来者查阅! 1:android-support-v4.jar and android-support-v7-appcompa ...
- asp.net mvc开发过程中的一些小细节
现在做网站用mvc越来越普及了,其好处就不说了,在这里只记录一些很多人都容易忽视的地方. 引用本地css和js文件的写法 这应该是最不受重视的地方,有同事也说我有点小题大作,但我觉得用mvc还是得有一 ...
- 小程序开发过程中常见问题[微信小程序、支付宝小程序]
目录 一.样式中如何使用background-image呢? 二.使用自适应单位rpx类似于rem,布局尽量使用flex布局 三.万能的{{双大括号,用于在模版中输出变量 四.你想要的基础组件和API ...
- JAVA开发过程中的各种小坑
1.有时候你在本地跑的ECLIPSE中得到的正确的结果,部署到服务器上使用其他容器,如tomcat或WARS的时候,跑出的结果也许就不一致, 我们程序员会经常抱怨,在我机器上跑的好好的. 在不同的容器 ...
- Android开发中遇到的小问题 一
1)想要ListView活着Girdview左右留些空隙,但Scrollbar要在屏幕最右边 在xml中加入 android:paddingLeft="8dp" android:p ...
- android 开发过程中碰到的 Failed to create the part's controls 问题
在开发android的过程中,遇到一个很奇怪的问题,出现了“ Failed to create the part's controls” 的错误,查询了N多资料,然后逐条删除代码测试, 后来发现是变量 ...
- Android开发过程中使用弱引用解决内存泄露的习惯
Java虽然有垃圾回收,但是仍然存在内存泄露,比如静态变量.缓存或其他长生命周期的对象引用了其他对象,这些被引用的对象就会长期不能被GC释放,导致内存泄露. 弱引用(WeakReference)是解决 ...
随机推荐
- c 这题做了半天,虽然做好了,但是思路还是不清晰,估计让我再做一次还是比较花时间的。
输入一个大写字符,如F 比如: 输入:F 输出: FEDCBA EDCBAB DCBABC CBABCD BABCDE ABCDEF 输入 B 输出: BA AB #include<stdio. ...
- JavaScript中的字符串
JavaScript字符串是JavaScript最重要的部分,可能比任何其他的数据类型都更多的用到. 所有的JavaScript对象共享的方法之一就是toString(). 字符串对象叫做String ...
- [译]SSRS 编写带参数的MDX报表
编写MDX报表长久以来对于报表人员来说都比较痛苦. 当然如果你用查询设计器(Query Designer) 直接拖拉数据集那就很方便,但是你们有没有想过查询设计器是怎么创建MDX的.或者创建的参数是如 ...
- 利用GDataXML解析XML文件
1.导入GDataXMLNode.h 和 GDataXMLNode.m文件 2.导入libxml2库文件 3.工程target下Bulid Settings 搜索search 找到Hearder S ...
- wpf将表中数据显示到datagrid示例(转)
原文:http://www.jb51.net/article/47120.htm 这篇文章主要介绍了wpf将表中数据显示到datagrid示例,需要的朋友可以参考下 a.在.xaml文件中拖入一个da ...
- js 获取单项复选的值
html: 单选框-----> 25岁以下 25~35岁 35~50岁 50岁以上 获值 var question1 = $('input:radio[name="radio" ...
- centos安装epel源
用163的源,但是我发现这个源里面,根本没有libmcrypt libmcrypt-devel这二个包,装php扩展mcrypt时,又要用到这二个包,所以我手动装了libmcrypt包,但是给我的感觉 ...
- (Problem 28)Number spiral diagonals
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is forme ...
- 导出Excel并下载,但无法定制样式的方法!
拿来的,望原创见谅! public void EXCELDown(DataTable dt, string strFileName) { Response.ContentEncoding = Syst ...
- open和fopen的区别:
1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量.执行 ...