问题描述
我正在尝试使用 android palyback 捕获来录制 android 系统音频,但总是得到空记录 -
int sampleRate = 44100;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormatVal = AudioFormat.ENCODING_PCM_16BIT;
int minBufSize = AudioRecord.getMinBufferSize(sampleRate,channelConfig,audioFormatVal);
AudioPlaybackCaptureConfiguration config = new AudioPlaybackCaptureConfiguration
.Builder(mediaProjection)
.addMatchingUsage(AudioAttributes.USAGE_MEDIA)
.addMatchingUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
.addMatchingUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING)
.addMatchingUsage(AudioAttributes.USAGE_UNKNowN)
.addMatchingUsage(AudioAttributes.USAGE_GAME)
.build();
AudioFormat audioFormat = new AudioFormat.Builder()
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)
.setSampleRate(sampleRate)
.setChannelMask(AudioFormat.CHANNEL_IN_MONO)
.build();
mIsShareAudio = true;
mAudioRecord = new AudioRecord.Builder()
.setAudioPlaybackCaptureConfig(config)
.setAudioFormat(audioFormat)
.setBufferSizeInBytes(minBufSize)
.build();
mAudioRecord.startRecording();
int bufferSize = minBufSize / 2;
short sData[] = new short[bufferSize];
boolean mIsShareAudio = true;
while (mIsShareAudio) {
mAudioRecord.read(sData,sData.length);
mLogger.log(LogPriority.INFO,TAG,"after fill=" + Arrays.toString(sData));
Arrays.toString(sData) 总是打印 0 作为输出。能否请你帮忙? 谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)