codenameone - 在播放期间或播放结束时点击视频后的自定义操作
问题描述
我的用例:我有一个图像是视频的预览。当用户点击预览时,视频应该开始全屏播放(我想在另一个表单中)。当视频结束或用户在播放过程中点击视频时,应显示上一个表单。这是问题的相同用例:Codename One Landscape oriented Form in a portrait locked app
我的问题:MediaPlayer
该类似乎没有公开在按下视频或视频结束时执行自定义操作的方法,就像这个用例所要求的那样。这MediaPlayer
是一个对等组件,所以我不确定尝试使用按钮作为领导组件是否可以在点击后执行操作。任何的想法?
解决方案
不幸的是,从这个意义上说,媒体相当复杂。您可以依赖本机的媒体播放器的行为,它可以无缝地处理方向更改、播放等(搜索等)。或者,您可以在媒体对象中自己实现所有内容,在这种情况下,您可以使用原生对等覆盖,并在媒体视图顶部有一个透明组件,它将抓取所有点击。
前者将提供更原生的 UX 并自动旋转 UI,但我们无法控制,因为没有Form
底层 UI。它在您调用时显示setNativePlayerMode(true)
。在这种情况下,当您点击视频时,它会暂停。要退出播放,您将使用设备本机键,例如后退或完成按钮,并将返回给父级Form
。请注意,由于这是本机行为,它在设备上的作用不同,因此在此处进行设备测试很重要。
您的替代方法是将媒体组件放置在屏幕中央,然后您可以覆盖所有内容并自定义所有内容。您可以在顶部放置分层布局并获取所有点击事件。您将需要添加自己的进度、播放、暂停等 UI 元素。用户需要物理旋转设备,因为方向不会自行切换(大部分情况下)。
推荐阅读
- java - 如何进行适当的单元测试?
- c++ - 需要帮助在 C++ 中生成深度有限的随机表达式树
- c - 如何在不使用 goto 关键字的情况下编写 C 代码?
- python - 结合 Conda 环境文件和 Pip 时,运行 Pip 安装时 Conda 环境是否处于活动状态?
- django - 如何在 Atom 文本编辑器中为 django 模板文件启用语法突出显示?
- python - Python Asyncio 没有使用 asyncio.run_coroutine_threadsafe 运行新的协程
- php - PHP elseif 不起作用。(将运算符与整数进行比较)
- amazon-web-services - 为 AWS S3 存储桶设置用户权限
- python - 高性能插入或更新 SQLALCHEMY python
- xamarin.android - 将应用程序更新到 API29 后的 md5/crc64 问题