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