本来上一篇分析音量设置中对于 setCurrentGainIndex 方法我们分析到了 native 层就没有往下分析,但这这里还有准备再看看下面的流程。
源码位置:frameworks/base/core/jni/android_media_AudioSystem.cpp
- static jint android_media_AudioSystem_setAudioPortConfig(JNIEnv *env, jobject clazz, jobject jAudioPortConfig)
- {
- if (jAudioPortConfig == NULL) {
- return AUDIO_JAVA_BAD_VALUE;
- }
- if (!env->IsInstanceOf(jAudioPortConfig, gAudioPortConfigClass)) {
- return AUDIO_JAVA_BAD_VALUE;
- }
- struct audio_port_config nAudioPortConfig = {};
- jint jStatus = convertAudioPortConfigToNative(env, &nAudioPortConfig, jAudioPortConfig, true);
- if (jStatus != AUDIO_JAVA_SUCCESS) {
- return jStatus;
- }
- status_t status = AudioSystem::setAudioPortConfig(&nAudioPortConfig);
- jStatus = nativeToJavaStatus(status);
- return jStatus;
- }
这里是