媒体变更说明

cl.multimedia.1 音频C接口播放焦点事件回调接口声明变更

对于在API10中新增的音频C接口,播放焦点事件回调接口错写为OH_AudioRenderer_OnInterrptEvent,需要修正为OH_AudioRenderer_OnInterruptEvent。

变更影响

对于已发布的C接口,可能影响三方应用的兼容性。

关键的接口/组件变更

修改前的接口原型:

int32_t (*OH_AudioRenderer_OnInterrptEvent)(
       OH_AudioRenderer* renderer,
       void* userData,
       OH_AudioInterrupt_ForceType type,
       OH_AudioInterrupt_Hint hint);

修改后的接口原型:

int32_t (*OH_AudioRenderer_OnInterruptEvent)(
       OH_AudioRenderer* renderer,
       void* userData,
       OH_AudioInterrupt_ForceType type,
       OH_AudioInterrupt_Hint hint);

适配指导

开发人员需要定义播放焦点事件时,使用的函数指针名称为OH_AudioRenderer_OnInterruptEvent。例如:

修改前

OH_AudioRenderer_Callbacks callbacks;
callbacks.OH_AudioRenderer_OnInterrptEvent = AudioRendererOnInterrptEvent;

修改后

OH_AudioRenderer_Callbacks callbacks;
callbacks.OH_AudioRenderer_OnInterruptEvent = AudioRendererOnInterrptEvent;

cl.multimedia.2 音频C接口录音焦点事件回调接口声明变更

对于在API10中新增的音频C接口,录制焦点事件回调接口错写为OH_AudioCapturer_OnInterrptEvent,需要修正为OH_AudioCapturer_OnInterruptEvent。

变更影响

对于已发布的C接口,可能影响三方应用的兼容性。

关键的接口/组件变更

修改前的接口原型:

int32_t (*OH_AudioCapturer_OnInterrptEvent)(
       OH_AudioCapturer* renderer,
       void* userData,
       OH_AudioInterrupt_ForceType type,
       OH_AudioInterrupt_Hint hint);

修改后的接口原型:

int32_t (*OH_AudioCapturer_OnInterruptEvent)(
       OH_AudioCapturer* capturer,
       void* userData,
       OH_AudioInterrupt_ForceType type,
       OH_AudioInterrupt_Hint hint);

适配指导

开发人员需要定义录音焦点事件时,使用的函数指针名称为OH_AudioCapturer_OnInterruptEvent。例如:

修改前

OH_AudioCapturer_Callbacks callbacks;
callbacks.OH_AudioCapturer_OnInterrptEvent = AudioCaptureOnInterruptEvent;

修改后

OH_AudioCapturer_Callbacks callbacks;
callbacks.OH_AudioCapturer_OnInterruptEvent = AudioCaptureOnInterruptEvent;

cl.multimedia.3 @ohos.multimedia.audio.d.ts内带入参的API10接口新增错误码声明

变更影响

携带入参的接口,当开发者参数类型或数量传错情况下,接口会同步抛出401错误码的异常,当参数值不符合取值范围,当接口为同步接口,会抛出相应错误码的异常,当接口为异步接口,会通过异步error返回错误码。 如果接口使用符合定义要求,则无兼容性影响。

关键的接口/组件变更

涉及新增错误声明的接口:

getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void;
getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors>;
on(type: 'preferredOutputDeviceChangeForRendererInfo', rendererInfo: AudioRendererInfo, callback: Callback<AudioDeviceDescriptors>): void;
off(type: 'preferredOutputDeviceChangeForRendererInfo', callback?: Callback<AudioDeviceDescriptors>): void;
setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback<void>): void;
setAudioEffectMode(mode: AudioEffectMode): Promise<void>;

涉及新增的错误码类型:

// 入参类型或数量缺少
@throws { BusinessError } 401 - If input parameter type or number mismatch.
// 入参值不符合取值范围
@throws { BusinessError } 6800101 - Invalid parameter error.
// 系统通用内部错误
@throws { BusinessError } 6800301 - System error.

适配指导

接口使用时,当发现抛出错误码为401的异常,开发者需要检查传入的参数类型和数量是否符合接口定义。 当发现接口异步返回了错误,可以根据错误码,检查接口错误的原因,进行合理的异常处置。

cl.multimedia.4 AudioRenderer.getCurrentOutputDevices接口实现错误修正

AudioRenderer的getCurrentOutputDevices接口,按照API定义,应返回AudioDeviceDescriptors类型,即AudioDeviceDescriptor类型的数组,但在历史版本内,实现和xts用例都错误的使用AudioDeviceDescriptor类型进行实现和测试,在新版本修复此问题,正确返回AudioDeviceDescriptors数组类型

变更影响

已在Beta版本发布的ts接口,影响按照错误的示范使用接口的三方应用的兼容性。

关键的接口/组件变更

修改前的接口原型:

// interface AudioRenderer
getCurrentOutputDevices(callback: AsyncCallback<AudioDeviceDescriptors>): void
getCurrentOutputDevices(): Promise<AudioDeviceDescriptors>;

修改后的接口原型:

接口定义不变,但实现正确返回AudioDeviceDescriptors数组类型

适配指导

如开发者需要按照接口声明的类型去使用API,无需适配。 如果参考了历史xts写法,并屏蔽了调用时与接口定义不匹配的告警,则需要修改为按照API定义使用。

cl.multimedia.5 401同步错误码接口实现修正

部分含入参的API10接口,当开发者没有传递足够的必选参数,或是传递的参数类型错误,接口应当按照接口声明,以同步方式抛出异常,提醒开发者在应用调试过程中出现此类接口使用错误问题。 当前版本修正了部分接口没有按此预期抛出错误的问题

变更影响

仅影响错误使用接口的场景

关键的接口/组件变更

修改前的接口原型:

// interface AudioRenderer
adjustVolumeByStep(adjustType: VolumeAdjustType, callback: AsyncCallback<void>): void;
adjustVolumeByStep(adjustType: VolumeAdjustType): Promise<void>;
adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType, callback: AsyncCallback<void>): void;
adjustSystemVolumeByStep(volumeType: AudioVolumeType, adjustType: VolumeAdjustType): Promise<void>;
getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType, callback: AsyncCallback<number>): void;
getSystemVolumeInDb(volumeType: AudioVolumeType, volumeLevel: number, device: DeviceType): Promise<number>;
setAudioEffectMode(mode: AudioEffectMode, callback: AsyncCallback<void>): void;
setAudioEffectMode(mode: AudioEffectMode): Promise<void>;
getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo, callback: AsyncCallback<AudioDeviceDescriptors>): void;
getPreferOutputDeviceForRendererInfo(rendererInfo: AudioRendererInfo): Promise<AudioDeviceDescriptors>;

修改后的接口原型:

// 401错误码声明描述调整
@throws { BusinessError } 401 - Input parameter type or number mismatch.

适配指导

正确使用API,无需适配。如发现抛出异常,则说明没有传递足够的必选参数,或是传递的参数类型错误,需要按照API定义传入参数。