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;
        }
    }
    

      

  • 相关阅读:
    [每日一题]石子合并 -- 区间DP
    [每日一题]: 最长上升子序列 AND 最长不上升子序列
    [每日一题]:最大子矩阵和
    入门DP--最大子段和
    [转载]:正确的提问方式
    springmvc.xml
    service层springservice.xml文件
    aop切面配置
    配置事务通知
    短信验证
  • 原文地址:https://www.cnblogs.com/aspirs/p/11482000.html
Copyright © 2011-2022 走看看