当前位置:  编程技术>移动开发
本页文章导读:
    ▪audiotrack应用的一个例子        audiotrack使用的一个例子 package sam.you;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.Method;import java.util.ArrayList;imp.........
    ▪ 安装和更新Chrome浏览器有关问题        安装和更新Chrome浏览器问题 此错误很可能是安装过程中计算机内的 Application 文件夹出现问题所致。 解决方法 要解决此问题,请删除 Application 文件夹,然后再次尝试安装。请按以下步骤操.........
    ▪ YUI3学习(4)- Node       YUI3学习(四)--- Node YUI3 ‘node’ 模块为创建、操作和获取DOM节点对象(集合)提供了丰富的方法。该模块包含两个主要的对象 Node和NodeList。每一个Node实例表示一个底层的DOM节点;每一个Nod.........

[1]audiotrack应用的一个例子
    来源: 互联网  发布时间: 2014-02-18
audiotrack使用的一个例子
package sam.you;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import com.leshi.common.SDcardUtil;


import android.R.integer;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.ActivityInfo;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PixelFormat;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.Bitmap.Config;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.hardware.Camera.Size;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.media.ThumbnailUtils;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
import android.provider.ContactsContract;
import android.provider.MediaStore.Video.Thumbnails;
import android.telephony.TelephonyManager;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class AndroidTest extends Activity implements View.OnClickListener,SurfaceHolder.Callback
{
private SurfaceHolder surfaceHolder = null;
private SurfaceView surfaceView = null;
private AudioTrack audioTrack = null;
private Thread writePCMThread = null;
private File audioFile = null;
private FileInputStream fileInputStream = null;
private byte buffer[] = new byte[16*10000];

// The Handler that gets information back from the other threads
private final Handler msgHandler = new Handler()
{
public void handleMessage(Message msg)
{

switch (msg.what)
{


default:
break;


}
}
};




/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
surfaceView = (SurfaceView) findViewById(R.id.surface);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
findViewById(R.id.button1).setOnClickListener(this);
findViewById(R.id.button2).setOnClickListener(this);
}

public void finish() {
super.finish();
System.out.println("finish");
try {
writePCMThread.interrupt();

} catch (Exception e) {
}
try {
fileInputStream.close();
} catch (Exception e) {
}
try {
audioTrack.stop();
audioTrack.release();
} catch (Exception e) {
}
}



protected void onResume()
{
super.onResume();
System.out.println("back on!!!!!!!!!!!");
initAudioTrack();
audioFile = new File(Environment.getExternalStorageDirectory(),"test.wav");
System.out.println(audioFile.length());
try {
fileInputStream = new FileInputStream(audioFile);
fileInputStream.skip(0x2c);
} catch (Exception e) {
}

writePCMThread = new Thread(new Runnable(){
public void run() {
try
{
while(fileInputStream.read(buffer)>=0)
{
System.out.println("write pcm data");
audioTrack.write(buffer, 0, buffer.length);

}
}
catch (Exception e) {
e.printStackTrace();
}

}
});

}

private void initAudioTrack()
{
int minBufferSize = AudioTrack.getMinBufferSize(0xac44, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
System.out.println("minBufferSize = "+minBufferSize);
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 0xac44,
AudioFormat.CHANNEL_CONFIGURATION_STEREO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize*2,AudioTrack.MODE_STREAM);
audioTrack.setStereoVolume(1.0f, 1.0f);// 设置当前音量大小
System.out.println("initAudioTrack over");
audioTrack.play();
}




public void onClick(View v)
{
switch (v.getId()) {
case R.id.button1:
writePCMThread.start();


break;
case R.id.button2:
break;
default:
break;
}


}




public void surfaceCreated(SurfaceHolder holder) {
System.out.println("surfaceCreated()");
this.surfaceHolder = holder;
}

public void surfaceDestroyed(SurfaceHolder holder) {
}

public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
this.surfaceHolder = holder;
}

public void onActivityResult(int requestCode, int resultCode, Intent data)
{





}


   
  

}

    
[2] 安装和更新Chrome浏览器有关问题
    来源: 互联网  发布时间: 2014-02-18
安装和更新Chrome浏览器问题

此错误很可能是安装过程中计算机内的 Application 文件夹出现问题所致。

解决方法

要解决此问题,请删除 Application 文件夹,然后再次尝试安装。请按以下步骤操作(适用于 Windows):

  • 转到“开始”菜单 >“运行”。
  • 根据所用的操作系统,在文本字段中输入下列某个命令。
    • Windows XP:%USERPROFILE%\Local Settings\Application Data\Google\Chrome
    • Windows Vista:%USERPROFILE%\AppData\Local\Google\Chrome
  • 点击确定。
  • 删除 Application 文件夹。如果难以删除此文件夹,请检查计算机中是否有活动的 Chrome 浏览器进程,然后结束这些进程。以下是查找并关闭这些进程的几种方法:
    • 在键盘上按 Ctrl+Alt+Delete,然后点击任务管理器。点击进程标签,然后结束名称中包含“google”或“chrome”的所有进程。
    • 访问 http://technet.microsoft.com/zh-CN/sysinternals/bb896653.aspx,下载名为 Process Explorer 的第三方程序。使用该程序的“Find”菜单搜索“Chrome/Application”,然后结束搜索到的所有进程。

    此时再次尝试删除 Application 文件夹。

  • 删除 Application 文件夹后,再次尝试安装 Chrome 浏览器。

  •     
    [3] YUI3学习(4)- Node
        来源: 互联网  发布时间: 2014-02-18
    YUI3学习(四)--- Node

    YUI3 ‘node’ 模块为创建、操作和获取DOM节点对象(集合)提供了丰富的方法。该模块包含两个主要的对象 Node和NodeList。每一个Node实例表示一个底层的DOM节点;每一个NodeList实例表示一组DOM节点集合。相比YUI2,YUI3 的 Node在模块组织和方法上有了很大的精简,但同样提供丰富的功能;下面简单介绍下node模块Node和NodeList的主要方法和使用。完整功能列表可参考官方API文档。

     

         YUI3 Node API是基于标准的DOM API的,它提供一些便捷的属性和方法使常用的DOM操作变得更简单,实现代码也更简洁。熟悉标准的DOM API的开发者会发现使用Node实例非常熟悉。

     

         获取Node实例最简单的办法就是使用YUI实例的“one”方法。Y.one方法接收页面上的DOM元素作为参数,也接收“选择字符串”作为参数。如果使用“选择字符串”作为参数,会得到“选择字符串匹配的第一个元素”。

    注意:默认不包含CSS3选择器支持,要得到CSS3选择器支持,你需要引入“selector-css3”模块。

    (了解css3 选择器)

     

     获取DOM元素(集合)

    示例

     

    YUI({ filter: 'raw' }).use('node',function(Y) {
    	//单实例获取 
    	Y.one('#id');//根据id返回Node实例
    	Y.one('tagName');//根据标签名(input、div)获取。返回第一个匹配的元素
    	Y.one('.className');//根据class样式名获取.返回第一个匹配的元素。
    	//获取多个实例
    	Y.all('#id1,#id2');//返回所选id的元素集合
    	Y.all('tagName');//返回标签为tagName的元素集合
    	Y.all('.className');//返回所有标记该样式的元素集合
    	Y.all('#id div');//获取id表示元素下所有的div元素
    	//另,引入‘selector-css3’模块可以使用css3支持的样式选择。
    });

     

    此外test方法,可以判断是否有元素匹配。 var  bool = node.test('.class div');

     

    使用Node对象

     

    获取/设置Node属性

     

    Node实例内的DOM节点的属性可以通过Y.Node实例的set和get方法访问。简单类型的属性(string、number、boolean)将直接针对底层的DOM节点操作。set和get方法返回操作的Node实例便于继续操作,不仅如此,大部分的Node方法都支持这种链式调用。

    除了set和get方法外,Node还提供了setAttribute/getAttribute、setAttrs/getAttrs及removeAttribute,

     提供直接为底层DOM元素设置属性的功能;

    set与setAttribute方法的比较

     

    set         :设置Node定义的属性(见下面Node扩展属性介绍),及role属性给node(见下面ARIA语义属性支持);也可以设置该dom元素支持的属性给dom。

    setAttribute:设置dom元素支持的属性,也可以设置自定义属性给dom。 

    同理来区分get与getAttribute。

    示例:

     

    YUI({ filter: 'raw' }).use('node',function(Y) {
    	var input1 = Y.one('#input1');
    	//ARIA语义属性支持
    	input1.set('role','inputname');	
    	//Node.ATTRS属性,见 Node API 属性
    	input1.set('offsetHeight',30); 
    	//dom支持的属性。如 innerHTML等。
    	input1.set('disabled',true);	
    	input1.get('parentNode');	
    	
    	var input2 = Y.one('#input2');
    	//dom支持属性
    	input2.setAttribute('disabled',true);
    	//自定义属性 
    	input2.setAttribute('custAttr','v');  
    	
    });

     



    获取/设置Node数据

      getData/setData/clearData方法:为node对象绑定自定义数据。注意数据关联的是node而非dom。

    设置样式

    相关方法:hasClass()、 addClass()、removeClass()、 replaceClass()、toggleClass()、

    getStyle()、setStyle()、setStyles()

    以上方法设置/获取对应dom节点的样式。使用可参考api参数说明。

    位置相关方法

    Node提供了一系列获取和设置dom位置相关的方法


    getX()  getY()  getXY()    

    setX()  setY()  setXY()     

    swap(otherNode)   //与参数node元素交换位置。只改变dom结构中的位置;

    swapXY(otherNode) //与参数node交换页面显示位置;dom树位置不变,只改变dom的top left及position属性;     

    scrollIntoView()  

    get('region');   //通过Node定义的region属性,可以获取该元素在页面中占据的区域。返回对象:

    {width,height,top,left}。


    节点操作及判断

    Node支持丰富的dom节点操作方法,而且大部分方法与W3C dom操作方法命名一致。熟悉dom操作函数的话,了解起来也非常的简单。具体方法可参考Node api 方法列表。


    Node静态方法

    Y.Node.create(htmlString,[doc]) //根据html字符串创建Node对象;

    Y.Node.getDOMNode(node) //返回node对象表示的底层dom对象;

    Y.Node.addMethod(..)  //为Node.prototype添加方法。


     

    Node扩展属性

    Node的扩展属性定义在Node.ATTRS中,在YUI3中,ATTRS是定义在类上的可配置属性,会在类实例化时将ATTRS中定义的属性赋予实例对象;

    在API中列出了一下扩展属性:

    --只读--

    children 

    docHeight、docWidth

    winHeight、 winWidth   

    docScrollX、docScrollY      

     

    region

    viewportRegion 

    --可读写--

    scrollTop、scrollLeft

    offsetHeight、offsetWidth

    text     

    关于属性的含义可参考api文档;这些属性可通过Node的get和set方法获取或设置。


    ARIA语义属性支持


     

    Node接口具有ARIA支持。当和Node内置的CSS选择器查询一起使用时,很容易应用、管理一个Node实例的 roles,states 和 properties 。

    ARIA Roles,States 和 Properties提升了HTML的语义。让开发者能更精确地描述页面某板块的目的,或者提升DHTML widget对需要辅助工具用户的使用体验。

    通过set方法应用ARIA Roles,States 和 Properties。比如,把id为toolbar的<div>的role设置为“toolbar”。

    YUI().use('node', function(Y) {

        var node = Y.one('#toolbar').set('role', 'toolbar');

    });

    Node内置的CSS选择器查询支持、链式方法、在一个Node实例上设置多个属性的能力,让我们在创建有很多树状子目录的DHTML widget时,很容易地应用ARIA Roles,States 和 Properties。比如,要创建一个menubar widget,我们需要将“menubar”角色指定给代表menubar的根DOM元素,再把“menu”角色指定给代表“menu”(菜单)的根 DOM元素。然后,因为菜单项默认是隐藏的,每个菜单都需要指定aria-hidden状态。Node接口让我们用一行代码就完成上述操作。

    YUI().use('node', function(Y) {

        Y.one('#rootmenu').set('role', 'menubar').all('.menu').setAttrs({ role: 'menu', 'aria-hidden': true });

    });



     

    事件注册

     

    使用on方法为Node实例添加事件监听器。通过监听函数第一个参数传入的事件对象是一个event facade,这个event facade和Node API一样,将浏览器差异统一化,提供一个基于W3C标准的标准API,与DOM事件配合工作。原来返回DOM节点的事件对象属性将返回Y.Node实 例。 

    示例如下:

     

    YUI().use('node', function(Y) {
        Y.one('#demo').on('click', function(e) {
                e.preventDefault();
                 alert('event: ' + e.type + ' target: ' + e.target.get('tagName'));
         });
    });

     

     

    关于事件的详细介绍请参考Event模块。

     

     



     

    使用NodeList对象

     

    Y.NodeList提供了和Node类似的操作多个节点的单一接口。NodeList API是Node API的简化版本,允许批量进行常见操作。Y.all方法是获取NodeList最简单的方法。

    示例:设置所有div元素样式


    Y.all('div').setStyle('border','1px solid red');

     

    此外,NodeList支持集合相关的操作方法,如下:

    concat(nodeList/Array)

    each()

    even()/odd()

    filter()

    indexOf()

    isEmpty()

    item(index)

    pop()

    push()

    shift()

    size()

    slice()

    splice()

    some()


     





     

     

     

     

    1 楼 tangyz 2011-11-25  
    写的挺好,支持下!
    2 楼 王坤明 2012-01-14  
    喜欢这些内容。学到不少东西
    3 楼 284772894 2012-02-27  
    经常看,写的不错

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    sqlserver iis7站长之家
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3