안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
다른분들에게 답변드릴 지식은 없지만 질문은 많이 하는 질문쟁이입니다..
이번에 질문 드릴건.. 미디어플레이어 관련인데요.
미디어 플레이어를 초기화 해주고
setVolume(좌 볼륨, 우 볼륨) 으로 볼륨 설정을 하고 해당 볼륨 값은 0 ~ 1.0f 까지가 설정값을 사용하는 것으로 알고있습니다.
또한 그리 적용하였습니다.
근데 음원 자체가 볼륨이 크지 않아서인지.. setVolume을 최대값 (1.0f ) 주고 미디어 볼륨을 최대로(15) 올리고 플레이해도
생각보단 크지 않더라고요. 그에 관하여 해당 볼륨 값을 음원 자체가 가진 볼륨 크기 보다 좀 더 크게 해줄수있는 방법을 알고싶습니다..
약간의 편법을 사용하여 최대값인 1.0f를 2.0f로 만들수 있다던지... (루팅관련 방법이 아닌..) 그런 방법을 알고싶습니다.
해당 질문에 대한 지식이 있으신 분은 꼭 좀 답변 부탁드리겠습니다 ^-^




API는 모르겠습니다. MX나 다이스에서 소프트웨어 재생시에만 증폭시키는 것으로 보아서는 쉽지 않을 듯 하네요.
소프트웨어 재생의 경우 디코딩 한 PCM으로 값을 증폭해서 사용하는 코드가 ffmpeg에 아래와 같이 되어 있습니다.
if (audio_volume != 256) // (audio_volume 대신 512가 되면 MAX(32767)를 오버하지 않는 이상 2배가 됩니다.)
{
short *volp;
volp = samples;
for(i=0;i<(decoded_data_size / sizeof(short));i++) {
int v = ((*volp) * audio_volume + 128) >> 8;
if (v < -32768) v = -32768;
if (v > 32767) v = 32767;
*volp++ = v;
}
}