视频录制的主要工作是选择视频/音频来源后,录制并生成视频/音频文件。
接口名 | 功能描述 |
---|---|
Recorder() | 创建 Recorder 实例。 |
setSource(Source source) | 设置音视频源。 |
setAudioProperty(AudioProperty property) | 设置音频属性。 |
setVideoProperty(VideoProperty property) | 设置视频属性。 |
setStorageProperty(StorageProperty property) | 设置音视频存储属性。 |
prepare() | 准备录制资源。 |
start() | 开始录制。 |
stop() | 停止录制。 |
pause() | 暂停录制。 |
resume() | 恢复录制。 |
reset() | 重置录制。 |
setRecorderLocation(float latitude, float longitude) | 设置视频的经纬度。 |
setOutputFormat(int outputFormat) | 设置输出文件格式。 |
getVideoSurface() | 获取视频窗口。 |
setRecorderProfile(RecorderProfile profile) | 设置媒体录制配置信息。 |
registerRecorderListener(IRecorderListener listener) | 注册媒体录制回调。 |
release() | 释放媒体录制资源。 |
Recorder recorder = new Recorder();
FileDescriptor fd = in.getFD();
Source source = new Source(fd);
source.setRecorderAudioSource(Recorder.AudioSource.DEFAULT);
recorder.setSource(source);
final int AUDIO_NUM_CHANNELS_STEREO = 2;
final int AUDIO_SAMPLE_RATE_HZ = 8000;
AudioProperty audioProperty = new AudioProperty.Builder()
.setRecorderNumChannels(AUDIO_NUM_CHANNELS_STEREO)
.setRecorderSamplingRate(AUDIO_SAMPLE_RATE_HZ)
.setRecorderAudioEncoder(Recorder.AudioEncoder.DEFAULT)
.build();
recorder.setAudioProperty(audioProperty);
String path = "/path/audiotestRecord.mp4";
StorageProperty storageProperty = new StorageProperty.Builder()
.setRecorderPath(path)
.setRecorderMaxDurationMs(-1)
.setRecorderMaxFileSizeBytes(-1)
.build();
recorder.setStorageProperty(storageProperty);
VideoProperty videoProperty = new VideoProperty.Builder()
.setRecorderVideoEncoder(Recorder.VideoEncoder.DEFAULT)
.setRecorderWidth(1080)
.setRecorderDegrees(0)
.setRecorderHeight(800)
.setRecorderBitRate(10000000)
.setRecorderRate(30)
.build();
recorder.setVideoProperty(videoProperty);
IRecorderListener listener = new RecorderErrorAndInfoListener() {
@Override
public void onError(int what, int extra) {
HiLog.error("EncodeWriteFileListener onError what:%{public}d, extra:%{public}d", what, extra);
}
}