多媒体子系统ChangeLog
cl.multimedia.audio.001 getRoutingManager()调用方式变更
getRoutingManager()接口的调用方法由异步变为同步。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
getRoutingManager(callback: AsyncCallback<AudioRoutingManager>): void;
getRoutingManager(): Promise<AudioRoutingManager>;
变更后
getRoutingManager(): AudioRoutingManager;
cl.multimedia.audio.002 getStreamManager()调用方式变更
getStreamManager()接口的调用方法由异步变为同步。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
getStreamManager(callback: AsyncCallback<AudioStreamManager>): void;
getStreamManager(): Promise<AudioStreamManager>;
变更后
getStreamManager(): AudioStreamManager;
cl.multimedia.audio.003 原AudioRoutingManager中micStateChange监听注册方式变更
原AudioRoutingManager中,on()函数的micStateChange监听注册方式变更。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
interface AudioRoutingManager {
on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void;
}
变更后
interface AudioVolumeGroupManager {
on(type: 'micStateChange', callback: Callback<MicStateChangeEvent>): void;
}
cl.multimedia.audio.004 getVolumeGroups()调用方式变更
getVolumeGroups()接口的调用方式变更。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
getVolumeGroups(networkId: string, callback:AsyncCallback<VolumeGroupInfos>): void;
getVolumeGroups(networkId: string): Promise<VolumeGroupInfos>;
变更后
getVolumeManager(): AudioVolumeManager;
interface AudioVolumeManager{
getVolumeGroupInfos(networkId: string, callback: AsyncCallback<VolumeGroupInfos>): void;
getVolumeGroupInfos(networkId: string): Promise<VolumeGroupInfos>;
}
cl.multimedia.audio.005 getGroupManager()调用方式变更
getGroupManager()接口的调用方式变更。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
getGroupManager(groupId: number, callback: AsyncCallback<AudioGroupManager>): void;
getGroupManager(groupId: number): Promise<AudioGroupManager>;
变更后
getVolumeManager(): AudioVolumeManager;
interface AudioVolumeManager{
getVolumeGroupManager(groupId: number, callback: AsyncCallback<AudioVolumeGroupManager>): void;
getVolumeGroupManager(groupId: number): Promise<AudioVolumeGroupManager>;
}
cl.multimedia.audio.006 枚举FocusType成员名变更
枚举FocusType中,成员FOCUS_TYPE_RECORDING重命名为FOCUS_TYPE_DEFAULT。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
enum FocusType {
FOCUS_TYPE_RECORDING = 0,
}
变更后
enum InterruptRequestType {
INTERRUPT_REQUEST_TYPE_DEFAULT = 0,
}
cl.multimedia.audio.007 AudioRenderer中interrupt监听注册名称变更
AudioRenderer中on()函数的interrupt监听注册名称变更。
变更影响
如不符合上述调用规则,将会在编译执行时出错。
关键的接口/组件变更
变更前
interface AudioRenderer {
on(type: 'interrupt', callback: Callback<InterruptEvent>): void;
}
变更后
interface AudioRenderer {
on(type: 'audioInterrupt', callback: Callback<InterruptEvent>): void;
}
cl.multimedia.media.001 VideoRecorder相关接口变更为systemapi
录制在MR版本会提供正式的AVRecorder(音视频合一)的接口给外部用户使用。 VideoRecorder相关的api9接口变更为systemapi,当前只提供给系统用户使用,未来等内部用户都切换为AVRecorder之后,废弃VideoRecorder相关接口。
变更影响
如果VideoRecorder的调用者非系统用户,会调用失败。
涉及接口以及枚举如下:
function createVideoRecorder(callback: AsyncCallback): void;
function createVideoRecorder(): Promise;
type VideoRecordState = 'idle' | 'prepared' | 'playing' | 'paused' | 'stopped' | 'error';
interface VideoRecorder{
prepare(config: VideoRecorderConfig, callback: AsyncCallback): void;
prepare(config: VideoRecorderConfig): Promise;
getInputSurface(callback: AsyncCallback): void;
getInputSurface(): Promise;
start(callback: AsyncCallback): void;
start(): Promise;
pause(callback: AsyncCallback): void;
pause(): Promise;
resume(callback: AsyncCallback): void;
resume(): Promise;
stop(callback: AsyncCallback): void;
stop(): Promise;
release(callback: AsyncCallback): void;
release(): Promise;
reset(callback: AsyncCallback): void;
reset(): Promise;
on(type: 'error', callback: ErrorCallback): void;
readonly state: VideoRecordState;
}
interface VideoRecorderProfile {
readonly audioBitrate: number;
readonly audioChannels: number;
readonly audioCodec: CodecMimeType;
readonly audioSampleRate: number;
readonly fileFormat: ContainerFormatType;
readonly videoBitrate: number;
readonly videoCodec: CodecMimeType;
readonly videoFrameWidth: number;
readonly videoFrameHeight: number;
readonly videoFrameRate: number;
}
enum AudioSourceType {
AUDIO_SOURCE_TYPE_DEFAULT = 0,
AUDIO_SOURCE_TYPE_MIC = 1,
}
enum VideoSourceType {
VIDEO_SOURCE_TYPE_SURFACE_YUV = 0,
VIDEO_SOURCE_TYPE_SURFACE_ES = 1,
}
enum VideoRecorderConfig {
audioSourceType?: AudioSourceType;
videoSourceType: VideoSourceType;
profile: VideoRecorderProfile;
url: string;
rotation?: number;
location?: Location;
}
cl.multimedia.media.002 VideoPlayer中不对外提供多码率选择接口
VideoPlayer在API9中不对外提供多码率选择相关接口,相关接口会在MR版本中由AvPlayer提供。
变更影响
VideoPlayer多码率场景无法进行码率选择,相关功能由AVPlayer提供
关键的接口/组件变更
删除如下接口 interface VideoPlayer { selectBitrate(bitrate: number): Promise; selectBitrate(bitrate: number, callback: AsyncCallback): void; on(type: 'availableBitratesCollect', callback: (bitrates: Array) => void): void; }
cl.multimedia.media.003 VideoRecorder错误信息变更
VideoRecorder原有错误码与整体错误码规则不一致,变更错误码适配规则。
变更影响
VideoRecorder返回的错误码发生变更。
关键的接口/组件变更
VideoRecorder接口未发生变更,返回的错误码发生变更。
适配指导
异常处理具体参考接口文档。 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-media.md https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-media.md