zoukankan      html  css  js  c++  java
  • android麦克风自录自放demo

    extends:http://blog.csdn.net/trbbadboy/article/details/7865530

    是一个直接播放麦克风采集到的声音线程类:

      

      class RecordThread extends Thread{  
        static final int frequency = 44100;  
        static final int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;  
        static final int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;  
    @Override  
    public void run() {  
        // TODO Auto-generated method stub  
        int recBufSize = AudioRecord.getMinBufferSize(frequency,  
                channelConfiguration, audioEncoding)*2;  
        int plyBufSize = AudioTrack.getMinBufferSize(frequency,  
                channelConfiguration, audioEncoding)*2;  
          
        AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency,  
                channelConfiguration, audioEncoding, recBufSize);  
      
        AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, frequency,  
                channelConfiguration, audioEncoding, plyBufSize, AudioTrack.MODE_STREAM);  
          
        byte[] recBuf = new byte[recBufSize];  
        audioRecord.startRecording();  
        audioTrack.play();  
        while(true){  
            int readLen = audioRecord.read(recBuf, 0, recBufSize);  
            audioTrack.write(recBuf, 0, readLen);  
        }  
        audioTrack.stop();  
        audioRecord.stop();  
    }  
      }  
     
     

    使用的时候,这样就行:

      

    RecordThread rec = new RecordThread();  
    rec.start();  

    需要在AndroidManifest.xml文件中添加路由权限:

       

    <uses-permission android:name="android.permission.RECORD_AUDIO"/>  
  • 相关阅读:
    linux下分析Java程序内存汇总
    Linux使用jstat命令查看jvm的GC情况
    linux的top命令参数详解
    项目中常用的19条MySQL优化
    MySQL:(一)
    MySQL:(二)
    微信公众号开发 (3) 菜单处理
    MyBatis项目实战 快速将MySQL转换成Oracle语句
    Spring Boot (5) 整合 RabbitMQ
    系统 (一) Windows10安装Ubuntu子系统
  • 原文地址:https://www.cnblogs.com/niray/p/4251409.html
Copyright © 2011-2022 走看看