zoukankan      html  css  js  c++  java
  • android开发过程中遇到的小问题


    ​转自:http://www.sctarena.com/Article/Article.asp?nid=5070
    ​1、在编写xml布局的时候,总是提示[Accessibility] Missing contentDescription attribute on image的警告信息

    解决方法:

    [html] view plaincopyprint?
    1. <ImageView  
    2.     android:layout_width="210dp"  
    3.     android:layout_height="32dp"  
    4.     android:layout_centerHorizontal="true"  
    5.     />  

    修改为:

    [html] view plaincopyprint?
    1. <ImageView  
    2.     android:layout_width="210dp"  
    3.     android:layout_height="32dp"  
    4.     android:layout_centerHorizontal="true"  
    5.     android:contentDescription="组件的描述内容"  
    6.     />  
     2、在android编写布局的时候,我们有时候需要将一个类封装成一个组件来使用,那么体现在界面上的方法有两种,1.xml布局,2.代码编写

    第一种:xml布局

    如果是xml布局需要注意两点

    a.类的构造方法中必须添加

    [html] view plaincopyprint?
    1. public 类名(Context context, AttributeSet attribute) {  }  

    b.在xml中的形式如下: http://www.sctarena.com/java/

    [html] view plaincopyprint?
    1. <包名.类名  
    2.      属性  
    3.   />  

    第二种代码布局,只需要构造

    [java] view plaincopyprint?
    1. public 类名(Context context) {  
    2. }  

    3、在播放音频的时候使用AudioTrack来实现,但是多次实现audioTrack.play,audioTrack.stop会出现如下现象:

    [java] view plaincopyprint?
    1. obtainBuffer() track 0x17c418 disabled, restarting  

    原因为:

    [java] view plaincopyprint?
    1. 在循环使用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,这样就解决了我现在的问题。

    [java] view plaincopyprint?
    1. /* 
    2.      * 播放音频 
    3.      */  
    4.     public void playvideo(byte[] data){  
    5.         if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {  
    6.             aAudio.play();  
    7.             aAudio.write(data, 08192);  
    8.         }else if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_PLAYING) {  
    9.             aAudio.write(data, 08192);  
    10.         }  
    11.     }  
  • 相关阅读:
    iOS NSString中的搜索方法rangeOfString
    iOS 远程推送通知
    iOS PushMeBaby日志提示SSLwrite():-36 94
    iOS [[NSBundle mainBundle] pathForResource:@"" ofType:@""]无法获取到文件
    iOS 申请测试用的远程推送证书
    数据结构与算法学习笔记(五)
    iOS 上传新版本到AppStore时报错ITMS-90034
    数据结构与算法学习笔记(四)
    数据结构与算法学习笔记(三)
    iOS开发日记49-详解定位CLLocation
  • 原文地址:https://www.cnblogs.com/cdtarena/p/3205750.html
Copyright © 2011-2022 走看看