마이크의 오디오를 실시간 처리하는 안드로이드 용 응용 프로그램을 만들고 있습니다. 샘플링 및 재생이 효과적으로 작동하지만 첫 번째 오디오 효과 인 왜곡을 구현하는 데 어려움을 겪고 있습니다. 오디오는 단락의 버퍼로 제공되므로, 이들 중 하나가 수신 될 때마다 값을 서명 된 단락의 전체 크기로 매핑하려고 시도하고 본질적으로 특정 레벨 이상인 경우이 값을 잘라냅니다. 이 오디오는 분명히 왜곡되어 있지만 바람직한 방식은 아닙니다. 이 작업을 수행하기 위해 코드를 포함했습니다. 누구든지 여기에서 오류를 볼 수 있습니까?자바 오디오 효과 - Android의 왜곡 알고리즘
public void onMarkerReached(AudioRecord recorder) {
// TODO Auto-generated method stub
short max = maxValue(buffers[ix]);
short multiplier;
if(max!=0)
multiplier = (short) (0x7fff/max);
else
multiplier = 0x7fff;
double distLvl =.8;
short distLvlSho = 31000;
short max2 =100;
for(int i=0;i<buffers[ix].length;i++){
buffers[ix][i]=(short) (buffers[ix][i]*multiplier);
if(buffers[ix][i]>distLvlSho)
buffers[ix][i]=distLvlSho;
else if(buffers[ix][i]<-distLvlSho)
buffers[ix][i]=(short)-distLvlSho;
buffers[ix][i]=(short) (buffers[ix][i]/multiplier);
}
버퍼들 어레이는 팬티의 2 차원 배열이며, 처리 [IX]를 여기에서, 어레이 내의 어레이 중 하나에서 수행 될 버퍼링한다.
이 언급해야는 시작 부분에 사용되는 maxValue를 기능 때문에 승수 짧은 기껏에 배열의 값 짧은의 한계 값을 곱해야한다, 내가 함께 일하고 있어요 배열의 최대 발견 , 32767 개최 할 수 있습니다. –