Я хотел бы уменьшить частоту дискретизации 16 бит / см до 8 бит, а затем увеличить частоту с 8 бит до 16 бит в Android. Я использую это, который, кажется, работает:
int tempint;
for (int i=1, j=0; i<tempBuffer.length; i+=2, j++)
{
tempint = ((int) tempBuffer[i]) ^ 0x00000080;
tempBuffer[j] = (byte) tempint;
Log.e("test","------------* COUNTER -> "+j+" BUFFER VALUE -> "+tempBuffer[j]+"*-----------");
}
где tempbuffer - это короткий [], а tempint - это int.
Может кто-нибудь сказать мне, если это работает нормально, потому что я начинающий, также я использую это, чтобы преобразовать байт [] обратно в короткий []
for (int x=1, j=0; x<music.length; x+=2, j++)
{
tempint = ((int) music[x])& 0xFF;
music[j] = tempint.shortValue();
Log.e("maxsap","------------*"+ music[j]+"*-----------");
}
который я не уверен, что он работает.