-
Notifications
You must be signed in to change notification settings - Fork 246
KSYPlayRecord
xinbaicheng edited this page Sep 6, 2017
·
9 revisions
金山云Android播放SDK提供了边播边录功能, 即在播放过程中可以录制视频与声音
并生成MP4
, 且录制生成的视频内容不包含UI等信息
-
SDK版本要求
- 播放SDK: v2.0.5 及以上版本
-
Android系统版本: Android 4.3 (API Level 18)及以上
-
仅在
软解
时生效 -
不建议录制高分辨率的视频
边播边录的和核心类KSYMediaPlayerRecorder
, 其构造函数及接口如下
/**
* 音视频编码配置与输出路径不可为空,否则会抛出异常
*
* @param config 音视频编码配置类
* @param outputPath 输出路径
*/
public KSYMediaRecorder(KSYMediaRecorderConfig config, String outputPath)
/**
* 初始化接口
*
* @param player 播放器对象
* @throws IOException
*/
public void init(KSYMediaPlayer player) throws IOException
/**
* 开始录制
*/
public void start()
/**
* 结束录制
*/
public void stop()
视频编码配置类KSYMediaRecorderConfig
音频编码的采样率和声道数与视频源有关,并没提供设置接口
视频编码的宽高及帧率与视频源相关,并没提供设置接口
/**
* 设置视频编码码率, 默认值为 800kbps
*
* @param bitrate 视频码率, 单位: bit
*/
public void setVideoBitrate(int bitrate)
/**
* 设置视频编码关键帧间隔, 默认值为 3s
*
* @param second 视频关键帧间隔, 单位: 秒
*/
public void setKeyFrameIntervalSecond(int second)
/**
* 设置音频编码码率, 默认值为 64kbps
*
* @param bitrate 音频码率, 单位: bit
*/
public void setAudioBitrate(int bitrate)
/**
* 设置是否录制音频, 默认值为 TRUE
* @param state true表示录制音频, 反之则否
*/
public void setAudioRecordState(boolean state)
KSYMediaPlayer mKsyMediaPlayer;
KSYMediaRecorder mMediaRecorder;
String outputPath = "/mnt/sdcard/output.mp4";
KSYMediaRecorderConfig mediaConfig = new KSYMediaRecorderConfig();
mKsyMediaPlayer.setDataSource("http://xxx.xx.com/test.mp4");
mKsyMediaPlayer.prepareAsync();
// ...
mediaConfig.setVideoBitrate(800 * 1000); //码率设置为 800kbps
mediaConfig.setKeyFrameIntervalSecond(3); //关键帧间隔为 3s
mediaConfig.setAudioBitrate(64*1000); // 音频编码码率设置为 64kbps
mMediaRecorder = new KSYMediaRecorder(mediaConfig, outputPath);
mMediaRecorder.init(mKsyMediaPlayer); // 初始化
mMediaRecorder.start(); // 开始录制
// ...
mMediaRecoder.stop(); // 结束录制
KSYTextureView mVideoView;
KSYMediaRecorder mMediaRecorder;
String outputPath = "/mnt/sdcard/output.mp4";
KSYMediaRecorderConfig mediaConfig = new KSYMediaRecorderConfig();
mVideoView.setDataSource("http://xxx.xx.com/test.mp4");
mVideoView.prepareAsync();
// ...
mediaConfig.setVideoBitrate(800 * 1000); //码率设置为 800kbps
mediaConfig.setKeyFrameIntervalSecond(3); //关键帧间隔为 3s
mediaConfig.setAudioBitrate(64*1000); // 音频编码码率设置为 64kbps
mMediaRecorder = new KSYMediaRecorder(mediaConfig, outputPath);
mMediaRecorder.init(mVideoView.getMediaPlayer()); // 初始化
mMediaRecorder.start(); // 开始录制
// ...
mMediaRecoder.stop(); // 结束录制