1package com.esa.audio; 2 3import android.media.AudioFormat; 4import android.media.AudioManager; 5import android.media.AudioRecord; 6import android.media.AudioTrack; 7import android.media.MediaRecorder; 8 9public class Audio { 10 11 public static final int AUDIO_SOURCE = MediaRecorder.AudioSource.MIC; 12 public static final int STREAM_TYPE = AudioManager.STREAM_MUSIC; 13 public static final int SAMPLE_RATE_IN_HZ = 8000;// 44100 14 public static final int CHANNEL_CONFIG = AudioFormat.CHANNEL_CONFIGURATION_MONO;// AudioTrack和AudioRecord都能用 15 public static final int RECORD_CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO; 16 public static final int TRACK_CHANNEL_CONFIG = AudioFormat.CHANNEL_OUT_MONO; 17 public static final int AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT; 18 public static final int TRACK_BUFFER_SIZE_IN_BYTES = AudioTrack.getMinBufferSize(SAMPLE_RATE_IN_HZ, TRACK_CHANNEL_CONFIG, AUDIO_FORMAT); 19 public static final int RECORD_BUFFER_SIZE_IN_BYTES = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, RECORD_CHANNEL_CONFIG, AUDIO_FORMAT);; 20 public static final int MODE = AudioTrack.MODE_STREAM; 21 22 private static Audio audio; 23 private AudioTrack track = null; 24 private AudioRecord record = null; 25 26 public static Audio getAudio() { 27 if (audio == null) { 28 audio = new Audio(); 29 } 30 return audio; 31 } 32 33 public AudioTrack getTrack() { 34 if (track == null) { 35 track = new AudioTrack(STREAM_TYPE, SAMPLE_RATE_IN_HZ, TRACK_CHANNEL_CONFIG, AUDIO_FORMAT, TRACK_BUFFER_SIZE_IN_BYTES, MODE); 36 } 37 return track; 38 } 39 40 public AudioRecord getRecord() { 41 if (record == null) { 42 record = new AudioRecord(AUDIO_SOURCE, SAMPLE_RATE_IN_HZ, RECORD_CHANNEL_CONFIG, AUDIO_FORMAT, RECORD_BUFFER_SIZE_IN_BYTES); 43 } 44 return record; 45 } 46 47 public void releaseRecord() { 48 if (record != null) { 49 record.stop(); 50 record.release(); 51 } 52 record = null; 53 } 54 55 public void releaseTrack() { 56 if (track != null) { 57 track.stop(); 58 track.release(); 59 } 60 track = null; 61 } 62}
Android录制和播放AudioRecord和AudioTrack
Stella981
2021-10-11
1100 0 0
点赞
收藏
评论区
加载中...