音效框架

本文深入解析了Android中LoudnessEnhancer的实现细节,从Java到C++层,涉及AudioEffect和AudioFlinger等关键组件。通过源码分析,阐述了如何在没有指定UUID的情况下,根据类型找到对应的音效库并创建Loudness Enhancer实例。
摘要由CSDN通过智能技术生成

alps/frameworks/base/media/java/android/media/audiofx/LoudnessEnhancer.java
public LoudnessEnhancer(int audioSession){
//默认只使用type,uuid等于null
super(EFFECT_TYPE_LOUDNESS_ENHANCER, EFFECT_TYPE_NULL, 0, audioSession);
}

alps/frameworks/base/media/java/android/media/audiofx/AudioEffect.java
/**
* UUID for Loudness Enhancer
*/
public static final UUID EFFECT_TYPE_LOUDNESS_ENHANCER = UUID
.fromString(“fe3199be-aed0-413f-87bb-11260eb63cf1”);
public static final UUID EFFECT_TYPE_NULL = UUID
.fromString(“ec7178ec-e5e1-4432-a3f4-4657e6795210”);

public AudioEffect(UUID type, UUID uuid, int priority, int audioSession){
    int[] id = new int[1];
    Descriptor[] desc = new Descriptor[1];
    // native initialization
    int initResult = native_setup(new WeakReference<AudioEffect>(this),
            type.toString(), uuid.toString(), priority, audioSession, id,
            desc, ActivityThread.currentOpPackageName());
    mId = id[0];
    mDescriptor = desc[0];
    synchronized (mStateLock) {
        mState = STATE_INITIALIZED;
    }
}

alps/frameworks/base/media/jni/audioeffect/android_media_AudioEffect.cpp
android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_this,
jstring type, jstring uuid, jint priority, jint sessionId, jintArray jId,
jobjectArray javadesc, jstring opPackageName)
{
typeStr = env->GetStringUTFChars(type, NULL);
uuidStr = env->GetStringUTFChars(uuid, NULL);
lpAudioEffect = new AudioEffect(typeStr,
String16(opPackageNameStr.c_str()),
uuidStr,
priority,
effectCallback,
&lpJniStorage->mCallbackData,
(audio_session_t) sessionId,
AUDIO_IO_HANDLE_NONE);
}
a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值