WebRTCExtension
WebRTCExtension copied to clipboard
问题标题:"Java 中在内部类中访问非 final 变量 'adm' 导致错误"
你好,我想问一下如何将 JavaAudioDeviceModuleExtKt 附加到 onWebRtcAudioTrackStart,例如我有这段代码:
adm = JavaAudioDeviceModule.builder(reactContext)
.setAudioTrackStateCallback(
new JavaAudioDeviceModule.AudioTrackStateCallback() {
@Override
public void onWebRtcAudioTrackStart() {
JavaAudioDeviceModuleExtKt.setAudioTrackSamplesReadyCallback(adm, audioSamples -> {
//音频输出数据,通话时对方数据,原始pcm数据,可以直接录制成pcm文件,再转成mp3
int audioFormat = audioSamples.getAudioFormat();
int channelCount = audioSamples.getChannelCount();
int sampleRate = audioSamples.getSampleRate();
//pcm格式数据
byte[] data = audioSamples.getData ();
});
}
@Override
public void onWebRtcAudioTrackStop() {
}
}
)
.setEnableVolumeLogger(false)
.setSamplesReadyCallback(saveRecordedAudioToFile)
.setAudioRecordErrorCallback(audioRecordErrorCallback)
.setAudioTrackErrorCallback(audioTrackErrorCallback)
.setAudioRecordStateCallback(audioRecordStateCallback)
.createAudioDeviceModule();
}
这会导致一个错误:变量 'adm' 从内部类中访问,需要是 final 或 effectively final,因为在 Java 中 adm 总是为空。