相关问题
#鸿蒙通关秘籍#如何在鸿蒙视频播放器中实现播放信息的持久化?
109浏览 • 1回复 待解决
#鸿蒙通关秘籍# 鸿蒙实战中如何实现视频播放器的进度切换和缓存播放信息?
94浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何将任务插入鸿蒙轻内核的任务就绪队列?
62浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在鸿蒙应用中实现视频播放器的暂停/播放功能?
110浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙视频播放器中维护播放列表和播放索引?
81浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为鸿蒙视频播放器添加暂停和播放功能?
116浏览 • 1回复 待解决
#鸿蒙通关秘籍#在鸿蒙视频播放器中如何实现切换播放进度的功能?
110浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙视频播放器中实现线程间通信以更新页面状态?
101浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何设计鸿蒙折叠屏音乐播放器的工程结构和模块?
157浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用ArkUI和FolderStack实现折叠屏音乐播放器?
110浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何管理ArkWeb的Cookie信息?
33浏览 • 1回复 待解决
HarmonyOS 如何调用系统播放器播放视频?
353浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙视频播放器中实现手动切换视频的功能?
113浏览 • 1回复 待解决
如何适配网页内播放器全屏
668浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中为音乐播放器进行水平悬停适配?
81浏览 • 1回复 待解决
如何将音频文件,放入harmonyos本地模拟器的sd卡?
4357浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中开发音乐播放器应用的转场动画
119浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在折叠屏设备中实现音乐播放器的动态适应?
107浏览 • 0回复 待解决
HarmonyOS 播放器全屏后的皮肤如何定制?
317浏览 • 1回复 待解决
使用AVPlayer实现视频播放器
1250浏览 • 1回复 待解决
java播放器怎么用解码器?
4781浏览 • 1回复 待解决
【播放器】硬解码支持的Demo
1863浏览 • 1回复 待解决
如何将Pixmap保存到本地文件?
482浏览 • 1回复 待解决
当应用接管网页的媒体播放后,需要将本地播放器的状态信息传递给ArkWeb内核。可以通过
NativeMediaPlayerHandler
对象进行这些状态的报告:typescript // 自定义的播放器状态监听类 class ActualNativeMediaPlayerListener { handler: webview.NativeMediaPlayerHandler;
constructor(handler: webview.NativeMediaPlayerHandler) { this.handler = handler; }
onPlaying() { this.handler.handleStatusChanged(webview.PlaybackStatus.PLAYING); } onPaused() { this.handler.handleStatusChanged(webview.PlaybackStatus.PAUSED); } onDurationChanged(duration: number) { this.handler.handleDurationChanged(duration); } onBufferedTimeChanged(buffered: number) { this.handler.handleBufferedEndTimeChanged(buffered); } onTimeUpdate(time: number) { this.handler.handleTimeUpdate(time); } onEnded() { this.handler.handleEnded(); } onVideoSizeChanged(width: number, height: number) { this.handler.handleVideoSizeChanged(width, height); } }
在播放器创建时,实例化这个监听器并绑定给播放器:
typescript @Entry @Component struct WebComponent { controller: webview.WebviewController = new webview.WebviewController();
build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) .enableNativeMediaPlayer({ enable: true, shouldOverlay: false }) .onPageBegin((event) => { this.controller.onCreateNativeMediaPlayer((handler: webview.NativeMediaPlayerHandler, mediaInfo: webview.MediaInfo) => { // instantiate the listener and bind it to the player's events let nativeMediaPlayerListener: ActualNativeMediaPlayerListener = new ActualNativeMediaPlayerListener(handler); // return the actual native player back to ArkWeb kernel return null; }); }) } } }