Closed LiuKaiXiang closed 6 years ago
建议你看下你写数据部分的代码,可能有问题 每次回调的PCM数据不会太多
try { final FileOutputStream fos = new FileOutputStream(audioPath); voicePlayer.getMediaPlayer().setOnAudioPCMAvailableListener(new KSYMediaPlayer.OnAudioPCMListener() { @Override public void onAudioPCMAvailable(IMediaPlayer mp, ByteBuffer buffer, long timestamp, int channels, int samplerate, int fmt) { try { if (!cap_stop) { fos.write(buffer.array());//数据写入文件中 fos.flush(); } else { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } }); } catch (FileNotFoundException e) { e.printStackTrace(); }
我就这样直接写进文件的,视频录下来才十几M,可是pcm就六十几M
回调里的ByteBuffer里只有一部分是有效的PCM数据,别全部写到本地去
哦,基本功不好。谢了
你好,setOnAudioPCMAvailableListener的回调数据不能直接写进.pcm文件里吗?我把ByteBuffer直接写进pcm文件里好大的,它要做什么处理吗?我想把音频数据放到本地文件