ksvc / KSYMediaPlayer_Android

金山云Android播放SDK(KSYUN Live Streaming player SDK),支持RTMP HTTP-FLV HLS 协议(supporting RTMP HTTP-FLV HLS protocol),直播延时2-3秒(Living delay 2 or 3 seconds),supporting jitter control,software&hardware decode
http://v.ksyun.com/
Apache License 2.0
853 stars 246 forks source link

setOnAudioPCMAvailableListener回调数据 #212

Closed LiuKaiXiang closed 6 years ago

LiuKaiXiang commented 6 years ago

你好,setOnAudioPCMAvailableListener的回调数据不能直接写进.pcm文件里吗?我把ByteBuffer直接写进pcm文件里好大的,它要做什么处理吗?我想把音频数据放到本地文件

FirmianaRain commented 6 years ago

建议你看下你写数据部分的代码,可能有问题 每次回调的PCM数据不会太多

LiuKaiXiang commented 6 years ago

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

FirmianaRain commented 6 years ago

回调里的ByteBuffer里只有一部分是有效的PCM数据,别全部写到本地去

LiuKaiXiang commented 6 years ago

哦,基本功不好。谢了