PCM 볼륨을 변경하는 JAVA 코드

1791 단어
최근에 음성 파일을 만들었는데 상대방이 소리가 너무 작다고 했어요.소프트웨어를 찾았지만 어디에서도 음량을 조절할 수 있는 곳을 보지 못했다.어떡하죠?우리는 프로그래머이니 프로그램을 하나 쓰자.
해봤는데 사실 원래 소리가 작지 않고 설비가 제한되어 있어서 재생 소리가 작아요.그래서 나는 소리를 작게 해서 효과가 나왔다.
여기에 놓고 공급이 필요한 프로그래머를 시험해 보자.
	private short getShort(byte[] src, int start)
	{	
		return (short)((src[start] & 0xFF) | (src[start+1] << 8));
	}
	
	short SHRT_MAX = (short) 0x7F00;
	short SHRT_MIN = (short)-0x7F00;
	
    /**
     *   PCM    
     * src  : 
     * nLen :
     * dest : 
     * nBitsPerSample: 16/8
     * multiple:     , 1.5
     */
	int amplifyPCMData(byte[] src, int nLen, byte[] dest, int nBitsPerSample, float multiple)   
	{   
	    int nCur = 0;   
	    if (16 == nBitsPerSample)   
	    {   
	        while (nCur < nLen)   
	        {   
	            short volum = getShort(src, nCur);
	            //Log.d(TAG, "volum="+volum);
	            volum = (short)(volum * multiple);   
	            if (volum < SHRT_MIN)
	            {
	            	volum = SHRT_MIN;
	            }
	            else if (volum > SHRT_MAX)//        
	            {   
	            	volum = SHRT_MAX;   
	            }   
	            
	            dest[nCur]   = (byte)( volum       & 0xFF);
	            dest[nCur+1] = (byte)((volum >> 8) & 0xFF);
	            nCur += 2;   
	        }   
	           
	    }   
	    /*else if (8 == nBitsPerSample)   
	    {   
	        while (nCur < nLen)   
	        {   
	            BYTE* volum = src + nCur;   
	            *volum = (*volum) * multiple;   
	            if (*volum > 255)//        
	            {   
	                *volum = 255;   
	            }   
	            *src  = *volum  ;   
	            nCur ++;   
	        }   
	           
	    }   */
	    return 0;   
	}

좋은 웹페이지 즐겨찾기