NativeMediaPlayerHandler 是CreateNativeMediaPlayerCallback回调函数的参数。当应用使用NativeMediaPlayerBridge接管网页媒体播放时,需要通过将播放器的各种状态变化实时同步给 ArkWeb 内核,确保网页 JavaScript 能够获取正确的播放器状态,ArkWeb 内核会将这些状态转换为标准的 HTML5 Media Events,触发网页中注册的事件监听器,从而保证网页功能的正常运行。
本模块首批接口从API version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
本Interface首批接口从API version 12开始支持。
示例效果请以真机运行为准。
handleStatusChanged(status: PlaybackStatus): void
当播放器的播放状态发生变化时,调用该方法将播放状态通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| status | PlaybackStatus | 是 | 播放器的播放状态。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleVolumeChanged(volume: number): void
当播放器的音量发生变化时,调用该方法将音量通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| volume | number | 是 | 播放器的音量,取值范围:[0, 1.0]。超出范围时,ArkWeb内核将不会执行。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleMutedChanged(muted: boolean): void
当播放器的静音状态发生变化时,调用该方法将静音状态通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| muted | boolean | 是 | 当前播放器是否静音。 true表示当前播放器静音,false表示当前播放器未静音。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handlePlaybackRateChanged(playbackRate: number): void
当播放器的播放速率发生变化时,调用该方法将播放速率通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| playbackRate | number | 是 | 播放速率,取值范围:[0, +∞)。传入负数时,ArkWeb内核将不会执行。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleDurationChanged(duration: number): void
当播放器解析出媒体的总时长时,调用该方法将媒体的总时长通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| duration | number | 是 | 媒体的总时长。 单位:秒,取值范围:[0, +∞)。传入负数时,ArkWeb内核将不会执行。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleTimeUpdate(currentPlayTime: number): void
当媒体的播放进度发生变化时,调用该方法将媒体的播放进度通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| currentPlayTime | number | 是 | 当前播放时间。 单位:秒,取值范围:[0, duration]。超出范围时,ArkWeb内核将不会执行。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleBufferedEndTimeChanged(bufferedEndTime: number): void
当媒体的缓冲时长发生变化时,调用该方法将媒体的缓冲时长通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| bufferedEndTime | number | 是 | 媒体缓冲的时长。 单位:秒,取值范围:[0, duration]。超出范围时,ArkWeb内核将不会执行。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleEnded(): void
当媒体播放结束时,调用该方法将播放结束事件通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleNetworkStateChanged(state: NetworkState): void
当播放器的网络状态发生变化时,调用该方法将播放器的网络状态通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| state | NetworkState | 是 | 播放器的网络状态。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleReadyStateChanged(state: ReadyState): void
当播放器的缓存状态发生变化时,调用该方法将播放器的缓存状态通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| state | ReadyState | 是 | 播放器的缓存状态。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleFullscreenChanged(fullscreen: boolean): void
当播放器的全屏状态发生变化时,调用该方法将播放器的全屏状态通知给 ArkWeb 内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| fullscreen | boolean | 是 | 是否全屏。 true表示全屏,false表示未全屏。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleSeeking(): void
当播放器进入seek状态时,调用该方法将seek进入事件通知ArkWeb内核。seek完成后,应调用handleSeekFinished将seek完成事件通知ArkWeb内核。
系统能力: SystemCapability.Web.Webview.Core
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleSeekFinished(): void
当播放器seek完成后,调用该方法将seek完成事件通知给ArkWeb内核。
系统能力: SystemCapability.Web.Webview.Core
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleError(error: MediaError, errorMessage: string): void
当播放器发生错误时,调用该方法将错误通知给ArkWeb内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| error | MediaError | 是 | 错误类型。 |
| errorMessage | string | 是 | 错误的详细描述。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。
handleVideoSizeChanged(width: number, height: number): void
当播放器解析出视频的尺寸时,调用该方法将视频尺寸通知给ArkWeb内核。
系统能力: SystemCapability.Web.Webview.Core
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| width | number | 是 | 视频的宽,单位:像素,取值范围:[0, +∞)。传入负数时,ArkWeb内核将忽略该值。 |
| height | number | 是 | 视频的高,单位:像素,取值范围:[0, +∞)。传入负数时,ArkWeb内核将忽略该值。 |
示例:
完整示例代码参考onCreateNativeMediaPlayer。