小编Jam*_*hid的帖子

为audioRecord实现getMaxAmplitude

我在我的应用程序中使用audioRecord而不是mediarecorder它工作正常但我有一个逻辑,高度依赖于maxamplitude这是很难获得使用audiorecord这里是我在阅读缓冲区时使用的

 private void writeAudioDataToFile(){
        byte data[] = new byte[bufferSize];

        String filename = getTempFilename();
        FileOutputStream os = null;

        try {
            os = new FileOutputStream(filename);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        int read = 0;
        max=0;
        if(null != os){
            while(isRecording){
                read = recorder.read(buffer, 0, bufferSize);
                int ab = (buffer[0] & 0xff) << 8 | buffer[1];
                amplitude = Math.abs(ab);

            if(amplitude>0&&amplitude<25000)
                isSilence=true;         
            else
                isSilence=false;

                //System.out.println(">>>>>>>>>>>"+amplitude);
                if(AudioRecord.ERROR_INVALID_OPERATION != read){
                    try {
                        os.write(buffer);
                    } catch (IOException e) {
                        e.printStackTrace();
                    } …
Run Code Online (Sandbox Code Playgroud)

java android android-audiorecord

9
推荐指数
1
解决办法
3885
查看次数

标签 统计

android ×1

android-audiorecord ×1

java ×1