OpenSL관련 질문 드립니다.

lalupo20의 이미지

안드로이드 어플을 만드는데요.

OpenSL을 이용해서 mp3파일을 재생하고 재생속도를 변경해보려고 합니다.

재생속도 변경에 관해서

void MusicPlayer::setRate(int rate) {
	if (uriPlayerPlayback != NULL) {
		SLresult result;
		SLuint8 index;
		SLpermille minRate;//23065
		SLpermille maxRate;//32539
		SLpermille step;//18060
		SLuint32 capa;//120
 
 
		result = (*uriPlayerPlayback)->SetRate(uriPlayerPlayback, rate);
		(*uriPlayerPlayback)->GetRateRange(uriPlayerPlayback, index, &minRate, &maxRate, &step, &capa);
 
		if (result != SL_RESULT_SUCCESS) {
			LOGI("set rate fail");
			return;
		}
	}
}

일단 위와 같은 함수를 인터넷에서 구했는데요.

디버깅을 해보니까 각 변수의 값은 위에 주석에 적어둔 것대로 나오는데.

일단 제 생각은 rate의 값은 minRate와 maxRate 사이의 값을 주어야 되는거 같은데 그렇게 해봐도 안되네요.

그래서 GetRateRange 안에 내용을 보려고 했는데 진입이 안되는거 같습니다.

OpenSL 사용 경험이 있으신 분 계신가요?

아시는 분 계시면 도움 좀 부탁드리겠습니다.