#鸿蒙通关秘籍#如何将本地播放器的状态信息通知ArkWeb内核?

HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
墨s幻影FTP

当应用接管网页的媒体播放后,需要将本地播放器的状态信息传递给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; }); }) } } }

分享
微博
QQ
微信
回复
5天前
相关问题
如何适配网页内播放器全屏
668浏览 • 1回复 待解决
使用AVPlayer实现视频播放器
1250浏览 • 1回复 待解决
java播放器怎么用解码?
4781浏览 • 1回复 待解决
播放器】硬解码支持Demo
1863浏览 • 1回复 待解决
如何将Pixmap保存到本地文件?
482浏览 • 1回复 待解决