ネイティブ層android_media_AudioTrack_get_min_buff_size()を呼び出すJavaの層は、最小サイズのオーディオトラックバッファを決定します

Javaの層はandroid_media_AudioTrack_get_min_buff_sizeネイティブ層()最小サイズオーディオトラックバッファを呼び出し決定し、この大きさに基づいているAudioTrackを作成

// ------------------------------------------------ ---------------------------- 
//ストリーミングAudioTrackを正しく作成するために最低限必要なサイズを返します
// -1を返しあった場合ハードウェアを照会エラーでした。
静的JINT android_media_AudioTrack_get_min_buff_size(JNIEnvの* ENV、jオブジェクトthiz、
    JINT sampleRateInHertz、JINT channelCount、JINTのAudioFormat){ 

    size_tのframeCount。
    constのstatus_t状態= AudioTrack :: getMinFrameCount(&frameCount、AUDIO_STREAM_DEFAULT、
            sampleRateInHertz)。
    (!ステータス= NO_ERROR){場合
        ALOGE( "サンプルレート%dのAudioTrack :: getMinFrameCount()は、ステータス%dで失敗しました"、 
                sampleRateInHertz、ステータス)
        戻り-1; 
    }
    CONST audio_format_t形式= audioFormatToNative(のAudioFormat)。
    IF(audio_has_proportional_frames(形式)){ 
        CONST size_tのbytesPerSample = audio_bytes_per_sample(フォーマット)。
        frameCount * channelCount * bytesPerSampleを返します。
    }他{ 
        frameCountを返します。
    } 
}

  

 

おすすめ

転載: www.cnblogs.com/aspirs/p/11482000.html