2014-07-05 3 views
0

이 웹 사이트에서 처음입니다. 나는이 프로젝트를 시도했지만 다양한 방법을 시도하고 이것에 대한 여러 가지 방법을 섞어도 도움이되지 않았으며 일부 또는 다른 오류가 계속해서 응용 프로그램을 손상시킵니다.안드로이드 헤드폰 잭에 특정 사각형 신호 만들기

내 코드 요구 사항은 동일합니다. 동일한 주파수에서 헤드폰 잭의 좌우 채널에 정사각형 신호를 생성하려면 0과 1의 두 배열을 전달해야하며 배열을 한 번만 재생하면됩니다. 장치 (안드로이드 전화)가 연결된 헤드폰을 감지하지 못하더라도 헤드폰 잭 (왼쪽 및 오른쪽으로 별도의 어레이)에서 재생할 수 있습니다. 업로드 된 배열과 주파수 선택은 기능을 통해 변경 가능해야합니다.

나는 여기에 많은 것을 요구하고 있지만 나는 한 달 넘게 노력했으며 막 막혔다. 위의 각 기능에 대한 구체적인 지침이 있더라도 작업을 수행 할 것입니다.

고마워요.

답변

0

PCM 16 비트 및 스테레오로 오디오를 재생할 때는 AudioTrack을 사용하는 것이 좋습니다 (WAV 사양 확인). 신호의 범위는 -1에서 +1입니다. 배열을 반복 재생할 스레드가 필요합니다.

주파수 F위한

, 넌 F의 사소한 수식이 = 1/T 계정에 samplerate을 복용 기간 T.

output = phase < 0.5f ? 1.0f : -1.0f; 
phase = phase + x; 
if (phase > 1.0f) 
    phase = 0.0f; 
: 아래의 코드

void setFreq(float f) 
{ 
    x = 1.0f/(samplerate/f) 
} 

연속적 (바이트 [] 또는 단락 []) 배열 버퍼 통해 AudioTrack 먹게 될 특정 주파수의 제곱 된 신호를 생성하기 위해 루프 내에서 실행한다