zoukankan      html  css  js  c++  java
  • java layer调用native层的android_media_AudioTrack_get_min_buff_size()确定audio track buffer的min size

    java layer调用native层的android_media_AudioTrack_get_min_buff_size()确定audio track buffer的min size,再根据这个size创建AudioTrack

    // ----------------------------------------------------------------------------
    // returns the minimum required size for the successful creation of a streaming AudioTrack
    // returns -1 if there was an error querying the hardware.
    static jint android_media_AudioTrack_get_min_buff_size(JNIEnv *env,  jobject thiz,
        jint sampleRateInHertz, jint channelCount, jint audioFormat) {
    
        size_t frameCount;
        const status_t status = AudioTrack::getMinFrameCount(&frameCount, AUDIO_STREAM_DEFAULT,
                sampleRateInHertz);
        if (status != NO_ERROR) {
            ALOGE("AudioTrack::getMinFrameCount() for sample rate %d failed with status %d",
                    sampleRateInHertz, status);
            return -1;
        }
        const audio_format_t format = audioFormatToNative(audioFormat);
        if (audio_has_proportional_frames(format)) {
            const size_t bytesPerSample = audio_bytes_per_sample(format);
            return frameCount * channelCount * bytesPerSample;
        } else {
            return frameCount;
        }
    }
    

      

  • 相关阅读:
    第二章——链表
    第一章:基本概念
    第八章
    画图
    关于写代码时的心态问题
    checked用id选择器找不到怎么办
    this指向问题
    es6箭头函数
    微信小程序——获取步数
    小程序——数据缓存
  • 原文地址:https://www.cnblogs.com/aspirs/p/11482000.html
Copyright © 2011-2022 走看看