视频录制的主要工作是选择视频/音频来源后,录制并生成视频/音频文件。
接口名 | 功能描述 |
---|---|
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);
}
}
AVSession 是一套媒体播放控制框架,对媒体服务和界面进行解耦,并提供规范的通信接口,使应用可以自由、高效地在不同的媒体之间...
场景介绍当设备需要设置不同的闪烁效果时,可以调用 Light 模块,例如,LED 灯能够设置灯颜色、灯亮和灯灭时长的闪烁效果。说明...
TransitionMovejava.lang.Object |---ohos.agp.transition.Transition |---|---ohos.agp.transition.TransitionMovepublic class...
四、统一稳定除了以上所提到的种种原则,建议接入微信的小程序还应该时刻注意不同页面间的统一性和延续性,在不同的页面尽量使用...