开发者社区> 问答> 正文

如图,为什么视频点播短时间内 dispose init会有这么多video标签?

如图,为什么视频点播短时间内 dispose init会有这么多video标签?而且网络一直没有中断请求
851ba01b2531c296a03bc11fb65d3d21.png
337dfa0c91db5dc4c4f91440e547e882.png
我这边的需求是 鼠标移入200ms后init 移出就dispose
发现dispose经常无法移除掉

展开
收起
乐天香橙派 2023-08-08 15:13:26 52 0
3 条回答
写回答
取消 提交回答
  • 那就是没有做dispose操作,而是一直在init,只有播放器创建完成才能对播放器dispose ,而且只有播放器初始化成功才可以销毁,播放器提供的api都需要在播放器初始化成功之后才可以调用。你可以尝试监听播放器的ready,在ready之后dispose—此回答来自钉群”阿里云-VOD-视频点播-技术交流(进群先看公告)“

    2023-08-09 10:19:08
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在视频点播中,每当您初始化(init)一个视频播放器时,它会创建一个视频标签(video tag)来承载视频内容并进行播放。当您调用dispose方法关闭当前的视频播放器时,相应的视频标签也会被释放。

    如果在短时间内频繁地进行dispose和init操作,意味着您在不断地创建和释放视频播放器。这可能是因为您的应用程序对视频播放器的管理逻辑导致了这种行为,例如在用户界面中反复切换视频或重复初始化播放器。

    另外,即使网络没有中断请求,频繁的dispose和init操作可能会导致视频播放器在初始化过程中发出多个请求,这可能会增加网络流量和服务器负载。

    2023-08-08 20:53:21
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    问题一:在视频点播中,dispose init可能会产生很多video标签,这是因为在初始化过程中,可能会尝试加载多个视频资源,并为每个视频资源创建一个video标签。如果视频资源加载失败,dispose init可能会尝试重新加载,这样就会产生更多的video标签。
    至于为什么网络没有中断请求,可能是因为在初始化过程中,可能会尝试加载多个视频资源,即使其中一些资源加载失败,也不会立即停止请求,而是继续尝试加载其他资源。此外,网络连接可能会出现波动,但是在初始化过程中,可能不会立即发现网络连接中断,因此仍然会继续尝试加载视频资源。

    问题二:在某些情况下,初始化(init)一个对象可能需要一些时间,特别是涉及到资源的加载、连接或配置等情况。如果你希望在初始化未完成时就执行对象的释放(dispose),可能会导致不稳定或错误的行为。因为对象可能还没有准备好正确执行释放操作,这可能导致资源泄漏或错误。

    通常,建议在初始化完成之后再执行释放操作,以确保对象能够正确地释放资源。如果你需要在初始化过程中进行一些操作,可以考虑使用异步方法或事件来处理,以避免阻塞程序并确保对象初始化的正确性。

    问题三:如果你希望在播放器初始化完成后才执行释放操作,可以考虑使用 Promise 来进行控制。你可以在初始化操作中返回一个 Promise,在初始化完成时 resolve 这个 Promise,然后在 resolve 的处理函数中执行释放操作。这样可以确保释放操作在初始化完成后才执行。

    2023-08-08 15:52:18
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
互联网音视频点播业务云上实践 立即下载
《VoD问题排查与实战手册》 立即下载
低代码开发师(初级)实战教程 立即下载