Android Audio代码分析3

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 21:27 点击:

 

今天来看看类AudioTrack的构造函数。

出发点是Java中的AudioTrack类。

从前面的使用实例中可知,应用程序中要实现播放,首先要创建一个AudioTrack对象,然后调用其函数来实现播放。

 

*****************************************源码*************************************************

    public AudioTrack(int streamType, int sampleRateInHz, int channelConfig, int audioFormat,

            int bufferSizeInBytes, int mode, int sessionId)

    throws IllegalArgumentException {

        mState = STATE_UNINITIALIZED;

       

        // remember which looper is associated with the AudioTrack instanciation

        if ((mInitializationLooper = Looper.myLooper()) == null) {

            mInitializationLooper = Looper.getMainLooper();

        }

 

        audioParamCheck(streamType, sampleRateInHz, channelConfig, audioFormat, mode);

 

        audioBuffSizeCheck(bufferSizeInBytes);

 

        if (sessionId < 0) {

            throw (new IllegalArgumentException("Invalid audio session ID: "+sessionId));

        }

 

        int[] session = new int[1];

        session[0] = sessionId;

        // native initialization

        int initResult = native_setup(new WeakReference<AudioTrack>(this),

                mStreamType, mSampleRate, mChannels, mAudioFormat,

                mNativeBufferSizeInBytes, mDataLoadMode, session);

        if (initResult != SUCCESS) {

            loge("Error code "+initResult+" when initializing AudioTrack.");

            return; // with mState == STATE_UNINITIALIZED

        }

 

        mSessionId = session[0];

 

        if (mDataLoadMode == MODE_STATIC) {

            mState = STATE_NO_STATIC_DATA;

        } else {

            mState = STATE_INITIALIZED;

        }

    } www.2cto.com

***********************************************************************************************

源码路径:

frameworks\base\media\java\android\media\AudioTrack.java

 

###########################################说明##############################################################

还是先看看自带注释:

    /**

     * Class constructor with audio session. Use this constructor when the AudioTrack must be

     * attached to a particular audio session. The primary use of the audio session ID is to

     * associate audio effects

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1