CN114615553B - 视频的播放方法、装置、电子设备及存储介质 - Google Patents
视频的播放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114615553B CN114615553B CN202011448392.XA CN202011448392A CN114615553B CN 114615553 B CN114615553 B CN 114615553B CN 202011448392 A CN202011448392 A CN 202011448392A CN 114615553 B CN114615553 B CN 114615553B
- Authority
- CN
- China
- Prior art keywords
- page
- media information
- video
- information stream
- player
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/475—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
- H04N21/4756—End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Abstract
本申请提供了一种视频的播放方法、装置、电子设备及存储介质;方法包括:呈现包含目标视频的媒体信息流页面,并创建嵌套于媒体信息流页面的底层页面;当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过播放器播放目标视频;当接收到针对目标视频的详情页查看指令时,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域,并切换媒体信息流页面至底层页面,通过底层页面呈现媒体信息流;通过本申请,能够在查看媒体信息流页面中正在播放的视频的详情时,保证从媒体信息流页面切换至详情页的过程中视频的播放不被打断,实现了视频播放过程中页面间的无缝切换。
Description
技术领域
本申请涉及互联网和媒体播放技术领域,尤其涉及一种视频的播放方法、装置、电子设备及存储介质。
背景技术
现在很多主流的客户端中,都加入了以信息流的形式展示视频等媒体信息的功能,信息流页面中包含有正在播放的视频,用户可通过从信息流页面跳转到该正在播放的视频的详情页面进行观看。
相关技术中,信息流页面的底层页面多使用活动组件Activity来创建。由于Activity的启动需要耗费较长的时间,当从信息流页面进入Activity底层页面的过程中,正在播放的视频画面存在黑屏或掉帧等现象,导致页面切换过程中视频播放的流畅度较差。
发明内容
本申请实施例提供一种视频的播放方法、装置、电子设备及存储介质,能够在查看媒体信息流页面中正在播放的视频的详情时,保证从媒体信息流页面切换至详情页的过程中视频的播放不被打断,实现了视频播放过程中页面间的无缝切换。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频的播放方法,包括:
呈现包含目标视频的媒体信息流页面,并创建嵌套于所述媒体信息流页面的底层页面;
当所述目标视频位于所述媒体信息流页面的第一位置区域时,在所述第一位置区域创建播放器,并通过所述播放器播放所述目标视频;
当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,并切换所述媒体信息流页面至所述底层页面,通过所述底层页面呈现媒体信息流;
其中,所述底层页面与所述播放器相独立,且所述目标视频融合于所述底层页面呈现的媒体信息流。
本申请实施例还提供一种视频的播放装置,包括:
第一创建模块,用于呈现包含目标视频的媒体信息流页面,并创建嵌套于所述媒体信息流页面的底层页面;
第二创建模块,用于当所述目标视频位于所述媒体信息流页面的第一位置区域时,在所述第一位置区域创建播放器,并通过所述播放器播放所述目标视频;
移动模块,用于当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,并切换所述媒体信息流页面至所述底层页面,通过所述底层页面呈现媒体信息流;
其中,所述底层页面与所述播放器相独立,且所述目标视频融合于所述底层页面呈现的媒体信息流。
上述方案中,所述第一创建模块,还用于创建嵌套于所述媒体信息流页面的至少两个碎片页面组件,通过所述至少两个碎片页面组件组合形成嵌套于所述媒体信息流页面的底层页面。
上述方案中,所述第一创建模块,还用于当所述目标视频为视频片段时,基于活动组件创建位于所述媒体信息流页面的下一层级的第一底层页面,所述第一底层页面,用于播放所述目标视频对应的完整视频;
相应地,所述第二创建模块,还用于当接收到针对所述目标视频的完整视频查看指令时,切换所述媒体信息流页面至所述第一底层页面,并
在所述第一底层页面创建第一播放器,通过所述第一播放器播放所述目标视频对应的完整视频。
上述方案中,所述装置还包括:
删除模块,用于接收到针对所述目标视频的完整视频退出指令时,切换所述第一底层页面至所述媒体信息流页面,并
删除所述第一底层页面、以及所述嵌套于所述媒体信息流页面的底层页面。
上述方案中,所述移动模块,还用于在播放所述目标视频的过程中,响应于针对所述目标视频的详情页退出指令,保持所述目标视频持续播放,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述底层页面至所述媒体信息流页面。
上述方案中,所述移动模块,还用于当所述播放器处于收起状态时,响应于针对所述目标视频的详情页退出指令,将所述播放器由所述收起状态调整为展开状态,并
将处于展开状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
上述方案中,所述移动模块,还用于检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态;
将处于收起状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
上述方案中,所述移动模块,还用于若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,响应于针对所述目标底层页面的页面退出指令,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述目标底层页面至所述媒体信息流页面;
删除包含所述底层页面和所述目标底层页面在内的所述媒体信息流页面对应的所有底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少一个页面层级。
上述方案中,所述删除模块,还用于若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,删除处于所述目标底层页面与所述底层页面之间的其他底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少两个页面层级。
上述方案中,所述第二创建模块,还用于检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态,以停止播放所述目标视频,并
当第一视频位于所述底层页面的第三位置区域时,在所述第三位置区域创建第二播放器;
通过所述第二播放器播放所述第一视频。
上述方案中,所述第一创建模块,还用于创建嵌套于所述底层页面的第二底层页面;
响应于针对所述第一视频的视频详情页查看指令,保持所述第一视频持续播放,将所述第二播放器从所述第三位置区域移动至第四位置区域,并切换所述底层页面至所述第二底层页面,通过所述第二底层页面呈现媒体信息流;
其中,所述第二底层页面与所述第二播放器相独立,且所述第一视频融合于所述第二底层页面呈现的媒体信息流。
上述方案中,所述移动模块,还用于当接收到针对所述目标视频的详情页查看指令时,调用所述目标视频对应的视频播放器接口;
通过所述视频播放器接口,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的视频的播放方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的视频的播放方法。
本申请实施例具有以下有益效果:
当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过创建的播放器播放目标视频;当接收到针对目标视频的详情页查看指令时,则在保持目标视频持续播放的同时,将播放器从第一位置区域移动到第二位置区域,并从媒体信息流页面切换至嵌套于该媒体信息流页面的底层页面。这里,该底层页面与播放器是相互独立的,播放器在移动过程中持续播放目标视频,同时也从媒体信息流页面切换到了底层页面,如此在查看媒体信息流页面中正在播放的视频的详情时,能够保证从媒体信息流页面切换至详情页的过程中,视频的播放不被打断,实现了视频播放过程中页面间的无缝切换。
附图说明
图1是本申请实施例提供的视频的播放系统100的架构示意图;
图2是本申请实施例提供的视频的播放方法的电子设备500的结构示意图;
图3是本申请实施例提供的视频的播放方法的流程示意图;
图4A是本申请实施例提供的媒体信息流页面切换至底层页面的示意图一;
图4B是本申请实施例提供的媒体信息流页面切换至底层页面的示意图二;
图5是本申请实施例提供的底层页面切换至第二底层页面的示意图;
图6是本申请实施例提供的由媒体信息流页面切换至底层页面过程中播放器的移动示意图;
图7A是本申请实施例提供的底层页面切换至媒体信息流页面的示意图一;
图7B是本申请实施例提供的底层页面切换至媒体信息流页面的示意图二;
图7C是本申请实施例提供的底层页面切换至媒体信息流页面的示意图三;
图7D是本申请实施例提供的底层页面切换至媒体信息流页面的示意图四;
图8是本申请实施例提供的媒体信息流页面切换至第一底层页面的示意图;
图9A是本申请实施例提供的页面无缝切换的流程示意图;
图9B是本申请实施例提供的视频的播放方法中涉及的关键类的示意图;
图10是本申请实施例提供的视频的播放方法的流程示意图;
图11A是本申请实施例提供的媒体信息流页面切换至底层页面的示意图;
图11B是本申请实施例提供的通过搜索进入底层页面;
图12是本申请实施例提供的视频的播放装置555的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)客户端,终端中运行的用于提供各种服务的应用程序,例如即时通讯客户端、视频播放客户端。
2)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
3)碎片页面组件,即Fragment,是一个碎片页面,一个可以将activity拆分成几个完全独立封装的可重用的组件,每个Fragment组件有自己的生命周期和UI布局。
4)活动组件,即Activity,是用户接口程序,原则上它会提供给用户一种交互式的接口功能,是安卓应用程序的基础功能单元,在安卓中代表了界面和以界面为中心相应的业务逻辑,包括显示、与用户交互等。
5)视图组件,即View,是最常用的,也是最简单的视图容器,它是一个块级容器组件,主要用于布局展示,是布局中最基本的UI组件。
6)Feeds:列表页视频信息流,包含多个视频,对应本申请的媒体信息流。
7)无缝切换:从Feeds进入底层页面时,Feeds页播放的视频不被打断,切换更加顺滑,用户观看体验更好。
基于上述对本申请实施例中涉及的名词和术语的解释,下面说明本申请实施例提供的视频的播放系统。参见图1,图1是本申请实施例提供的视频的播放系统100的架构示意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端(如终端400-1和终端400-2),用于向服务器发送媒体信息流页面对应的媒体信息获取请求;
服务器200,用于响应于媒体信息获取请求,返回相应的媒体信息至终端;
终端(如终端400-1和终端400-2),用于接收并解析服务器200发送的媒体信息,基于解析后的媒体信息,在图形界面410(示例性示出了图形界面410-1和图形界面410-2)呈现包含目标视频的媒体信息流页面,并创建嵌套于媒体信息流页面的底层页面;
终端(如终端400-1和终端400-2),还用于当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过播放器播放目标视频;当接收到针对目标视频的详情页查看指令时,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域,并切换媒体信息流页面至底层页面,通过底层页面呈现媒体信息流。
在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1和终端400-2)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端(如终端400-1和终端400-2)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参见图2,图2是本申请实施例提供的视频的播放方法的电子设备500的结构示意图。在实际应用中,电子设备500可以为图1示出的服务器或终端,以电子设备500为图1示出的终端为例,对实施本申请实施例的视频的播放方法的电子设备进行说明,本申请实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的视频的播放装置可以采用软件方式实现,图2示出了存储在存储器550中的视频的播放装置555,其可以是程序和插件等形式的软件,包括以下软件模块:第一创建模块5551、第二创建模块5552和移动模块5553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的视频的播放装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的视频的播放装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频的播放方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
基于上述对本申请实施例提供的视频的播放系统及电子设备的说明,下面说明本申请实施例提供的视频的播放方法。在一些实施例中,本申请实施例提供的视频的播放方法可由服务器或终端单独实施,或由服务器及终端协同实施,下面以终端实施为例说明本申请实施例提供的视频的播放方法。参见图3,图3是本申请实施例提供的视频的播放方法的流程示意图,本申请实施例提供的视频的播放方法包括:
步骤101:终端呈现包含目标视频的媒体信息流页面,并创建嵌套于媒体信息流页面的底层页面。
这里,终端设置有媒体信息客户端,如当媒体信息为视频时的视频播放客户端、当媒体信息为资讯类时的资讯类客户端、能够进行媒体信息播放的即时通讯客户端等。在实际实施时,当基于用户触发的客户端运行指令,终端运行媒体信息客户端时,媒体信息客户端从服务器处获取包含目标视频的媒体信息,从而在媒体信息流页面中呈现包含目标视频的媒体信息。在实际实施时,该媒体信息流页面可基于Activity组件创建。
对媒体信息的获取进行说明。在实际实施时,媒体信息客户端发送媒体信息获取请求给服务器(如媒体信息客户端的后台服务器),服务器从媒体信息库中选择适配的媒体信息返回至媒体信息客户端,使得媒体信息客户端通过媒体信息流页面呈现包含目标视频的媒体信息。在一些实施例中,媒体信息获取请求中携带登录该媒体信息客户端的用户的标识信息(如登录账号),服务器基于该用户的标识信息,获取该用户的用户画像,然后感基于用户画像从媒体信息库中筛选与该用户相适配的(也即该用户兴趣的)媒体信息,返回获取的媒体信息至媒体信息客户端。
在本申请实施例中,在创建媒体信息流页面的同时,还会创建嵌套于媒体信息流页面的底层页面。在一些实施例中,终端可通过如下方式创建嵌套于媒体信息流页面的底层页面:创建嵌套于媒体信息流页面的至少两个碎片页面组件,通过至少两个碎片页面组件组合形成嵌套于媒体信息流页面的底层页面。
在一些实施例中,终端还可通过如下方式创建嵌套于媒体信息流页面的底层页面:创建嵌套于媒体信息流页面的至少两个视图组件,通过至少两个视图组件组合形成嵌套于媒体信息流页面的底层页面。
这里,终端在创建底层页面时,可以通过碎片页面组件创建,也可以通过视图组件创建。具体地,首先创建嵌套于媒体信息流页面的至少两个碎片页面组件或者至少两个视图组件;然后通过至少两个碎片页面组件组合形成嵌套于媒体信息流页面的底层页面,或者至少两个视图组件组合形成嵌套于媒体信息流页面的底层页面。
步骤102:当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过播放器播放目标视频。
这里,媒体信息流页面中的视频可以自动播放(比如当视频位于视图界面的目标区域时),也可以响应于用户触发的播放指令播放。在一些实施例中,当媒体信息流页面中的目标视频处于第一位置区域(比如处于视图界面的中间区域)时,在该第一位置区域创建播放器,具体地,可以调用onCreateView()来实现播放器的创建,进而通过创建的播放器播放目标视频。
步骤103:当接收到针对目标视频的详情页查看指令时,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域,并切换媒体信息流页面至底层页面,通过底层页面呈现媒体信息流。
其中,该底层页面与播放器相独立,且目标视频融合于底层页面呈现的媒体信息流。
这里,终端呈现有目标视频对应的详情页查看功能项,比如详情页查看按钮、详情页查看功能入口、完整视频查看入口等。当接收到用户针对详情页查看功能项的触发操作时,响应于该触发操作,接收到针对目标视频的详情页查看指令。此时,则执行页面的切换操作,即从媒体信息流页面切换至底层页面(该底层页面为目标视频的详情页)。
在本申请实施例中,为保证在页面切换的过程,处于播放的目标视频不被打断,在接收到详情页查看指令时,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域,比如播放器在媒体信息流页面的底部时,则可以将位于底部的播放器移动至页面的顶部。同时加载底层页面并在底层页面中呈现媒体信息流。该第二位置区域的播放器与底层页面相互独立,在形式上与底层页面构成一个页面,即基于第二位置区域的播放器所播放的目标视频融合于底层页面呈现的媒体信息流。
作为示例,参见图4A,图4A是本申请实施例提供的媒体信息流页面切换至底层页面的示意图一。这里,终端呈现有视频1对应的详情页查看功能入口“空白条”,并在视频1所在的媒体信息流页面通过播放器1播放视频1;当接收到基于该详情页查看功能入口触发的详情页查看指令时,保持视频1持续播放,将播放器1从位置区域1移动至位置区域2,同时切换媒体信息流页面至底层页面,之后加载底层页面的媒体信息并呈现。
作为示例,参见图4B,图4B是本申请实施例提供的媒体信息流页面切换至底层页面的示意图二。这里,终端呈现有视频1对应的详情页查看功能项“完整版”,并在视频2所在的媒体信息流页面通过播放器2播放视频2;当接收到基于该详情页查看功能项“完整版”触发的详情页查看指令时,将播放器2从位置区域1移动至位置区域2,同时切换媒体信息流页面至底层页面,之后加载底层页面的媒体信息并呈现。由于详情页查看功能项“完整版”用于观看视频2对应的完整视频,因此这里在移动播放器2的过程中,视频2可以持续播放,也可以暂停播放,或者还可以呈现“请稍等”、加载图标等提示信息。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,若检测到目标视频的内容播放完成时,将播放器调整为收起状态,以停止播放目标视频,并当第一视频位于底层页面的第三位置区域时,在第三位置区域创建第二播放器;通过第二播放器播放第一视频。
这里,终端如果检测到目标视频的内容播放完成时,可以将播放器调整为收起状态,以停止播放目标视频,同时减小相对于底层页面的占比,方便用户继续观看或浏览底层页面的媒体信息流。此时,如果检测到第一视频位于底层页面的第三位置区域(比如底层页面的第三位置区域可以处于视图界面的中间区域)时,即可以播放自动播放位于该第三位置区域的第一视频。此时,在第三位置区域创建第二播放器,具体地,可以调用onCreateView()来实现第二播放器的创建,从而通过该第二播放器播放第一视频。
在一些实施例中,终端在通过第二播放器播放第一视频时,还可创建嵌套于底层页面的第二底层页面;响应于针对第一视频的视频详情页查看指令,保持第一视频持续播放,将第二播放器从第三位置区域移动至第四位置区域,并切换底层页面至第二底层页面,通过第二底层页面呈现媒体信息流。其中,该第二底层页面与第二播放器相独立,且第一视频融合于第二底层页面呈现的媒体信息流。
在实际实施时,用户可以从媒体信息流页面进入底层页面后,再从底层页面进入到底层页面的下一层级的底层页面,以该下一层级的底层页面为第一视频的详情页为例,说明终端从媒体信息流页面的第一个层级的底层页面进入到下一层级的底层页面。首先,终端可创建嵌套于底层页面的第二底层页面;当接收针对第一视频的视频详情页查看指令时,保持第一视频持续播放,将用于播放第一视频的第二播放器从第三位置区域移动至第四位置区域,比如第二播放器在底层页面的中部时,则可以将位于中部的第二播放器移动至页面的顶部。并将底层页面切换至第二底层页面,同时加载第二底层页面中的媒体信息并在底层页面中呈现媒体信息流。该第四位置区域的播放器与第二底层页面相互独立,在形式上与第二底层页面构成一个页面,即基于第四位置区域的第二播放器所播放的第一视频融合于第二底层页面呈现的媒体信息流。
作为示例,参见图5,图5是本申请实施例提供的底层页面切换至第二底层页面的示意图。这里,当底层页面顶部的播放器对应的目标视频播放完成后,将顶部的播放器调整为收起状态。同时确定第一视频位于底部页面的第三位置区域,此时在第三位置区域创建第二播放器,通过第二播放器播放第一视频。还创建嵌套于底层页面的第二底层页面;当接收基于详情页查看功能项“详情”触发的针对第一视频的视频详情页查看指令时,保持第一视频持续播放,将用于播放第一视频的第二播放器从第三位置区域移动至第四位置区域,同时加载第二底层页面中的媒体信息并在底层页面中呈现媒体信息流。
基于此,参见图6,图6是本申请实施例提供的由媒体信息流页面切换至底层页面过程中播放器的移动示意图。这里,当接收到针对媒体信息流页面的播放器Player#1所播放视频的详情页查看指令时,将Player#1从媒体信息流页面的原始位置区域移动至底层页面1之上的顶部位置区域,并加载底层页面1中的底层页数据,比如播放器Player#2播放的视频,从而实现从媒体信息流页面至底层页面1的无缝切换;当接收到针对底层页面1的播放器Player#2所播放视频的详情页查看指令时,将Player#2从底层页面1的原始位置区域移动至底层页面2之上的顶部位置区域,并加载底层页面2中的底层页数据,比如播放器Player#3播放的视频,从而实现从底层页面1至底层页面2的无缝切换;当接收到针对底层页面2的播放器Player#3所播放视频的详情页查看指令时,将Player#3从底层页面2的原始位置区域移动至底层页面3之上的顶部位置区域,并加载底层页面3中的底层页数据,比如播放器Player#4播放的视频,从而实现从底层页面2至底层页面3的无缝切换。
在一些实施例中,终端可通过如下方式将播放器从第一位置区域移动至第二位置区域:当接收到针对目标视频的详情页查看指令时,调用目标视频对应的视频播放器接口;通过视频播放器接口,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,在播放目标视频的过程中,响应于针对目标视频的详情页退出指令,保持目标视频持续播放,将播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
这里,终端呈现有对应目标视频的详情页退出功能项,在目标视频的播放过程中,用户可通过触发该详情页退出功能项触发详情页退出指令,以控制终端退出目标视频的播放。当终端接收到详情页退出指令时,为保证在页面切换的过程,处于播放的目标视频不被打断,将播放器从当前的第二位置区域移动至第一位置区域,即媒体信息流页面中播放器的原始位置,并切换底层页面至媒体信息流页面。在实际实施时,此时还可以将底层页面进行删除,以节省存储空间。
作为示例,参见图7A,图7A是本申请实施例提供的底层页面切换至媒体信息流页面的示意图一。这里,终端在底层页面中呈现对应目标视频的详情页退出功能项“退出”,当接收到基于详情页退出功能项“退出”触发的详情页退出指令时,将处于播放状态的播放器从当前的第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,当检测到目标视频的内容播放完成时,将播放器调整为收起状态;将处于收起状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
这里,终端如果检测到目标视频的内容播放完成后,则可以将播放器调整为收起状态,以减小相对于底层页面的占比,方便用户继续观看或浏览底层页面的媒体信息流。当播放器处于收起状态时,终端还可以自动将处于收起状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。在实际实施时,此时还可以将底层页面进行删除,以节省存储空间。
作为示例,参见图7B,图7B是本申请实施例提供的底层页面切换至媒体信息流页面的示意图二。这里,终端在检测到目标视频的内容播放完成后,将播放器调整为收起状态,即收起播放器至于底层页面的最顶端;此时,终端将处于收起状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面,以实现从底层页面的退出操作。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,当播放器处于收起状态时,响应于针对目标视频的详情页退出指令,将播放器由收起状态调整为展开状态,并将处于展开状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
这里,终端呈现有对应目标视频的详情页退出功能项,当播放器处于收起状态(比如目标视频的内容播放完成后使得播放器处于收起状态、或者用户主动播放处于底层页面中的其他视频使得播放器处于收起状态)时,若用户通过触发该详情页退出功能项触发详情页退出指令后,终端响应于该详情页退出指令,将播放器由收起状态迅速调整为展开状态,并将处于展开状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。在实际实施时,此时还可以将底层页面进行删除,以节省存储空间。
作为示例,参见图7C,图7C是本申请实施例提供的底层页面切换至媒体信息流页面的示意图三。这里,终端在底层页面中呈现对应目标视频的详情页退出功能项“退出”,当接收到基于详情页退出功能项“退出”触发的详情页退出指令时,将处于收起状态的的播放器快速展开,并将处于展开状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,若当前呈现的页面为基于底层页面进入的媒体信息流页面的目标底层页面时,响应于针对目标底层页面的页面退出指令,将播放器从第二位置区域移动至第一位置区域,并切换目标底层页面至媒体信息流页面;删除包含底层页面和目标底层页面在内的媒体信息流页面对应的所有底层页面。其中,该目标底层页面的页面层级,与底层页面的页面层级之间相差至少一个页面层级。
这里,参见图7D,图7D是本申请实施例提供的底层页面切换至媒体信息流页面的示意图四。终端呈现有用于退出当前页面的页面退出功能项。若当前呈现的页面为基于底层页面进入的媒体信息流页面的目标底层页面时,当接收到针对目标底层页面的页面退出指令(比如用户通过触发页面退出功能项触发)时,呈现播放目标视频的播放器从第二位置区域移动至第一位置区域的动画,并切换目标底层页面至媒体信息流页面。同时为了节省存储空间,将包含底层页面和目标底层页面在内的媒体信息流页面对应的所有底层页面进行删除。
在一些实施例中,终端在切换媒体信息流页面至底层页面之后,若当前呈现的页面为基于底层页面进入的媒体信息流页面的目标底层页面时,删除处于目标底层页面与底层页面之间的其他底层页面。其中,该目标底层页面的页面层级,与底层页面的页面层级之间相差至少两个页面层级。
在实际应用中,随着进入的媒体信息流页面的底层页面越来越多,所创建的底层页面也会越来越多。当在目标底层页面接收到页面退出指令而直接退出至媒体信息流页面时,即并非按照进入时的底层页面一级一级返回时,在实际实施时,并不需要中间过渡的底层页面同时存在,只需要第一个页面层级的底层页面和最后一个页面层级的底层页面(即当前呈现的目标底层页面),其余的中间底层页面则可以全部删除,防止底层页面以及底层页面的播放器创建过多而占用内存。
在一些实施例中,当目标视频为视频片段时,由于媒体信息流页面播放的目标视频和底层页面播放的完整视频之间并不是连续播放的关系,此时,终端可基于活动组件创建位于媒体信息流页面的下一层级的第一底层页面。其中,该第一底层页面,用于播放目标视频对应的完整视频;相应地,当接收到针对目标视频的完整视频查看指令时,切换媒体信息流页面至第一底层页面,并在第一底层页面创建第一播放器,通过第一播放器播放目标视频对应的完整视频。
这里,当媒体信息流页面播放的目标视频为视频片段时,由于媒体信息流页面播放的目标视频和底层页面播放的完整视频之间并不是连续播放的关系,此时,终端可以基于活动组件Activity创建位于媒体信息流页面的下一层级的第一底层页面。该第一底层页面为一个完整的页面,因此,当接收到用户触发的针对目标视频的完整视频查看指令时,首先切换媒体信息流页面至第一底层页面;然后,在第一底层页面中创建第一播放器,以通过该第一播放器播放目标视频对应的完整视频。
作为示例,参见图8,图8是本申请实施例提供的媒体信息流页面切换至第一底层页面的示意图。这里,终端呈现有目标视频对应的完整视频查看功能项“完整版”,当接收到基于该完整视频页查看功能项“完整版”触发的完整视频查看指令时,切换媒体信息流页面至基于Activity创建的第一底层页面,并在第一底层页面创建第一播放器,通过第一播放器播放目标视频对应的完整视频。
在一些实施例中,终端接收到针对目标视频的完整视频退出指令时,切换第一底层页面至媒体信息流页面,并删除第一底层页面、以及嵌套于媒体信息流页面的底层页面。
在实际应用中,媒体信息流页面中视频对应的底层页面,可以通过触发详情页查看指令进入,可以通过触发完整视频查看指令进入,还可以通过客户端发送的推送消息进入等等。而通过触发完整视频查看指令进入或者通过客户端发送的推送消息进入,均不需要保证页面切换过程中视频的持续播放,此时则可以通过活动组件Activity创建媒体信息流页面的底层页面。因此,一个视频对应的底层页面可能是基于Activity创建的底层页面,也可以是基于Fragment组件创建的底层页面,或者同时存在Fragment底层页面和Activity底层页面,此时从底层页面返回至媒体信息流页面时,需要删除所有底层页面,即不仅需要删除所有Fragment底层页面,还需要删除所有Activity底层页面。
这里,当通过触发完整视频查看指令进入第一底层页面时,若接收到完整视频退出指令时,则在从当前第一底层页面切换到媒体信息流页面的过程中,删除基于Activity创建的第一底层页面、以及基于Fragment创建的底层页面。
应用本申请上述实施例,当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过创建的播放器播放目标视频;当接收到针对目标视频的详情页查看指令时,则在保持目标视频持续播放的同时,将播放器从第一位置区域移动到第二位置区域,并从媒体信息流页面切换至嵌套于该媒体信息流页面的底层页面。这里,该底层页面与播放器是相互独立的,播放器在移动过程中持续播放目标视频,同时也从媒体信息流页面切换到了底层页面,如此在查看媒体信息流页面中正在播放的视频的详情时,能够保证从媒体信息流页面切换至详情页的过程中,视频的播放不被打断,实现了视频播放过程中页面间的无缝切换。
下面将说明本申请实施例在一个实际的应用场景中的示例性应用。
相关技术中,Feeds视频流页面的底层页面多使用Activity来呈现。Feeds中呈现有正在播放的视频,当从Feeds进入底层页面Activity时,在Feeds的播放器TextureViewonSurfaceTextureDestroyed时,保存SurfaceTexture对象,在进入到底层页面Activity后,回调TextureView的onSurfaceTextureAvaliable时,通过调用setSurfaceTexture()来恢复Feeds中正在播放的视频画面。由于Activity的启动可能会需要耗费几百毫秒的时长,使得Activity中的视频画面存在黑屏或掉帧现象,导致用户体验不佳。
基于此,本申请实施例提供一种视频的播放方法,利用Fragment来实现无缝切换,具体地,使用Fragment来呈现Feeds的底层页面(即不启用新的Activity底层页面)。同时,将Feeds和Fragment底层页面的视频的播放器进行合并(即Feeds和Fragment底层页面的播放器采用同一个),从而达到从Feeds进入Fragment底层页面(或者从Fragment底层页面返回Feeds)时,视频的播放不被打断,提供更加顺滑的页面切换动效,优化用户观看体验。
接下来结合图9A-图9B,参见图10对本申请实施例提供的视频的播放方法进行详细说明。其中,图9A是本申请实施例提供的页面无缝切换的流程示意图,图9B是本申请实施例提供的视频的播放方法中涉及的关键类的示意图,图10是本申请实施例提供的视频的播放方法的流程示意图,包括:
步骤201:终端发送媒体信息获取请求至服务器。
步骤202:服务器响应于媒体信息获取请求,发送媒体信息至终端。
步骤203:终端基于获取的媒体信息,创建媒体信息流页面、以及嵌套于媒体信息流页面的底层页面。
这里,该媒体信息流页面即为首页feeds页面,为基于Activity组件创建。同时,在首页feeds页面创建时,还需创建一个Fragment底层页面等待使用。
步骤204:当媒体信息流页面中的目标视频位于第一位置区域时,在第一位置区域创建播放器,并通过该播放器播放目标视频。
这里,媒体信息流页面中的视频可以自动播放,也可以响应于用户触发的播放指令播放。在一些实施例中,当媒体信息流页面中的目标视频处于第一位置区域(比如处于视图界面的中间区域)时,在该第一位置区域创建播放器以播放目标视频。具体地,可以调用类onCreateView()来实现媒体信息流页面中的播放器的创建,另外,还可以调用onCreateView()来实现Fragment底层页面的创建。
步骤205:当接收到针对目标视频的详情页查看指令时,保持目标视频持续播放,将播放器从第一位置区域移动至第二位置区域,并切换媒体信息流页面至底层页面,通过底层页面呈现媒体信息流。
这里,可以呈现详情页查看功能项,比如位于目标视频的播放卡片下方的详情页查看查看入口、详情页查看按钮等。用户可通过点击或长按详情页查看功能项触发针对目标视频的详情页查看指令。
当接收到详情页查看指令时(即从媒体信息流页面进入底层页面的指令),记录此时Feeds页面中播放器的位置(即第一位置区域)。同时将播放器从第一位置区域移动至第二位置区域。即参见图4,将位于媒体信息流页面下方位置区域的Feeds播放器Player#1向上移动至无缝切换底层页面1的顶部位置。同时,Fragment底层页面撑满,移动到Feeds播放器Player#1的下方。这里,该两个移动过程可以是同时动画的。
在移动的动画结束后,Fragment底层页面请求并加载底层页面数据,即新的媒体信息流。这里,当底层页面中的媒体信息流仍包含视频时,还会创建当前Fragment底层页面对应的底层页面,以便于通过当前Fragment底层页面中的当前播卡片,从当前Fragment底层页面无缝切换至新的底层页面。具体地,可以根据一个标识ID来生成Fragment底层页面,这个ID是动态生成的,以用于保证每次生成的ID均不同,从而确保生成的Fragment底层页面是不同的。至此完成了一次页面的无缝切换过程,即从媒体信息流页面无缝进入Fragment底层页面。
步骤206:在目标视频的播放过程中,响应于针对目标视频的详情页退出指令,保持目标视频持续播放,将播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
这里,在目标视频的播放过程中,当接收到详情页退出指令(即用户通过点击back键返回)时,将播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。参见图4,将位于无缝切换底层页面1的顶部位置的Feeds播放器Player#1向下移动至媒体信息流页面中的下方位置区域。
步骤207:当目标视频的内容播放完成时,将播放器调整为收起状态;响应于针对目标视频的详情页退出指令,将播放器由收起状态调整为展开状态,并将处于展开状态的播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
这里,当目标视频的内容播放完成、或者用户在底层页面中正在播放其他视频时,目标视频的播放器则调整为收起状态。当接收到详情页退出指令(即用户通过点击back键返回)时,则将播放器由收起状态迅速调整为展开状态,并播放器从第二位置区域移动至第一位置区域,并切换底层页面至媒体信息流页面。
步骤208:基于底层页面进入媒体信息流页面的目标底层页面,该目标底层页面的页面层级,与底层页面的页面层级之间相差至少一个页面层级。
这里,用户从媒体信息流页面进入底层页面后,还可以从底层页面进入到下一层级的底层页面,直至进入目标底层页面。
参见图6,从Feeds页面中当前播卡片的下方,点击空白条进入底层页面1,同时将Player#1从Feeds页面的原始位置区域移动至底层页面1的顶部,并加载底层页面1中的底层页数据(包括播放器Player#2所播放的视频数据),从而实现从Feeds页面至底层页面1的无缝切换;从底层页面1中当前播卡片的下方,点击空白条进入底层页面2,同时将Player#2从底层页面1的原始位置区域移动至底层页面2的顶部,并加载底层页面2中的底层页数据(包括播放器Player#3所播放的视频数据),从而实现底层页面1至底层页面2的无缝切换;从底层页面2中当前播卡片的下方,点击空白条进入底层页面3,同时将Player#3从底层页面2的原始位置区域移动至底层页面3的顶部,并加载底层页面3中的底层页数据(包括播放器Player#4所播放的视频数据),从而实现底层页面2至底层页面3的无缝切换。
若当前呈现的页面为基于底层页面进入的媒体信息流页面的目标底层页面(比如媒体信息流页面对应的底层页面3)时,当接收到针对目标底层页面的页面退出指令(即用户通过点击back键返回)时,则需要一次性清空所有无缝切换对应的底层页面。如果此时顶部的播放器是收起状态,则需要将播放器迅速展开,并将除了第一个无缝底层页面全部出栈,然后根据媒体信息流页面中(即从首页进入时所记载的)播放器的位置区域,对顶部展开的播放器做返回动画,从顶部返回到原来记录的媒体信息流页面中的播放器的位置区域。
参见图9A,如步骤1、1.1以及1.1.1所示,通过调用onCreateView()来实现媒体信息流页面中的播放器的创建以及底层页面的创建,在当前播页面初始化时,调用smoothSwitch()以确定该当前播页面是否支持页面的无缝切换,如果支持,则创建Fragment底层页面,从而通过无缝切换的方式从媒体信息流页面进入底层页面;如果不支持,则通过Activity来实现底层页面的呈现,以完成从媒体信息流页面进入底层页面的切换。如步骤2、2.1以及2.1.1所示,在进入底层页面时,调用handle Expand Detail Fragment()展开底层页面,调用get Detail Fragment()获取底层页面的数据,并通过set Arguments()传递。如步骤3、3.1以及3.1.1所示,在上述从媒体信息流页面进入底层页面时,可调用expandDetailFragment()实现无缝切换展开的过程,具体地,通过append DetailFragment()通知调用doExpandAnimation()实现无缝切换展开过程的动画;如步骤4、4.1以及4.1.1所示,在上述返回媒体信息流页面时,可调用removeDetailFragment()实现无缝切换返回过程,具体地,通过removeFragment()通知调用doRemoveAnimation()实现无缝切换返回过程的动画。
如图9B,图9B是本申请实施例提供的视频的播放方法中涉及的关键类的示意图。其中,FeedPlayerApi这个类是用来控制feed当前播的一些API。如expandDetailFragment()是无缝切换展开过程,removeDetailFragment()是无缝切换返回过程。AttachLayerLiteImpl和DetailSmoothAttachLayerImpl类用于处理贴片相关逻辑。
随着进入的Fragment底层页面越来越多,创建的Fragment底层页面也会越来越多,而实际上并不需要过多的Fragment底层页面同时存在,只需要第一个Fragment底层页面和最后一个Fragment底层页面,其余的可以删除掉,防止播放器创建过多占用过多内存。
除了Fragment底层页面,还存在Activity底层页面,比如通过推送所进入的底层页面、或者通过点击完整版按钮进入的底层页面等等。因此,还可能会同时存在Fragment底层页面和Activity底层页面。此时在返回到媒体信息流页面(即首页)时,则需要清空所有底层页面返回到首页,即不仅需要对所有Fragment底层页面退栈,Activity底层页面也要finish。
在一些实施例中,还可使用自定义view代替Fragment,只实现一些使用到的方法,避免Fragment过重。
接下来从产品侧来说明本申请实施例提供的视频的播放方法。
参见图5,这里,从Feeds当前播放的视频的下方,点击空白条进入底层页面,从底层页面继续点击空白条进入下一个底层页面。从Feeds当前播放的视频的下方,点击空白条进入底层页面,位于Feeds页面的播放器上滑,评论条下滑(若开关开启),保持播放器持续播放;同时,底层页面有一个Loading的效果;Feeds页面的主体信息淡出展示,在底层页面通过顶部的播放器继续播放视频。相同的,用户还可以从底层页面继续点击空白条进入下一个底层页面。
参见图4B,这里,通过点击Feeds页面当前播放的视频片段对应的完整版按钮进入到底层页面。点击完整版,播放器上滑,评论条下滑(若开关开启),播放器已经loading加载视频片段对应的完整视频了;同时,底层页面有一个loading的效果;Feeds页面的主体信息淡出展示,进入完整版底层页面。
参见图11A,图11A是本申请实施例提供的媒体信息流页面切换至底层页面的示意图。这里,从Feeds当前播放的视频的下方,点击空白条进入底层页面,播放器边上滑,边放大,评论条下滑;保持播放器持续播放;同时,底层页面有一个Loading的效果;Feeds页面的主体信息淡出展示,在底层页面通过顶部的播放器继续播放视频。
参见图7A,这里,在底层页面的顶部,播放器处于展开状态,并正在播放视频,点击返回按钮,呈现当前页面信息,顶部播放器回落到之前Feeds页面的播放器的位置;背景信息是淡出切换的效果;从而实现从底层页面到Feeds页面的返回。
参见图7D,这里,顶部播放器展开,在底层页面续播下方Feeds视频,顶部播放器暂停;点击返回按钮,呈现当前页面信息,正在播放的feeds播放器回落到之前的Feeds页面的播放器的位置;背景信息是淡出切换的效果;从而实现从底层页面到Feeds页面的返回。
参见图7C,这里,顶部播放器收起,并播放下方feeds视频;点击返回按钮;呈现当前页面信息,正在播放的feeds播放器回落到之前的Feeds页面的播放器的位置;背景信息是淡出切换的效果;从而实现从底层页面到Feeds页面的返回。
参见图11B,图11B是本申请实施例提供的通过搜索进入底层页面。这里,一级页面的入口非媒体信息流页面(如搜索、小图横滑、节目库等),这里以搜索为例,点击进入底层页面,此时呈现从右往左滑入的效果,进入底层页自动播放;点击返回按钮,此时呈现从左往右滑出的效果;返回上一级页面,无播放内容。
应用本申请上述实施例,使用Fragment来呈现Feeds的底层页面,并将Feeds和Fragment底层页面的视频的播放器进行合并,从而达到从Feeds进入Fragment底层页面(或者从Fragment底层页面返回Feeds)时,视频的播放不被打断,提供更加顺滑的视频页面的切换动效,优化用户观看体验。
下面继续说明本申请实施例提供的视频的播放装置555,在一些实施例中,视频的播放装置可采用软件模块的方式实现。参见图12,图12是本申请实施例提供的视频的播放装置555的结构示意图,本申请实施例提供的视频的播放装置555包括:
第一创建模块5551,用于呈现包含目标视频的媒体信息流页面,并创建嵌套于所述媒体信息流页面的底层页面;
第二创建模块5552,用于当所述目标视频位于所述媒体信息流页面的第一位置区域时,在所述第一位置区域创建播放器,并通过所述播放器播放所述目标视频;
移动模块5553,用于当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,并切换所述媒体信息流页面至所述底层页面,通过所述底层页面呈现媒体信息流;
其中,所述底层页面与所述播放器相独立,且所述目标视频融合于所述底层页面呈现的媒体信息流。
在一些实施例中,所述第一创建模块5551,还用于创建嵌套于所述媒体信息流页面的至少两个碎片页面组件,通过所述至少两个碎片页面组件组合形成嵌套于所述媒体信息流页面的底层页面。
在一些实施例中,所述第一创建模块5551,还用于当所述目标视频为视频片段时,基于活动组件创建位于所述媒体信息流页面的下一层级的第一底层页面,所述第一底层页面,用于播放所述目标视频对应的完整视频;
相应地,所述第二创建模块5552,还用于当接收到针对所述目标视频的完整视频查看指令时,切换所述媒体信息流页面至所述第一底层页面,并
在所述第一底层页面创建第一播放器,通过所述第一播放器播放所述目标视频对应的完整视频。
在一些实施例中,所述装置还包括:
删除模块,用于接收到针对所述目标视频的完整视频退出指令时,切换所述第一底层页面至所述媒体信息流页面,并
删除所述第一底层页面、以及所述嵌套于所述媒体信息流页面的底层页面。
在一些实施例中,所述移动模块5553,还用于在播放所述目标视频的过程中,响应于针对所述目标视频的详情页退出指令,保持所述目标视频持续播放,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述底层页面至所述媒体信息流页面。
在一些实施例中,所述移动模块5553,还用于当所述播放器处于收起状态时,响应于针对所述目标视频的详情页退出指令,将所述播放器由所述收起状态调整为展开状态,并
将处于展开状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
在一些实施例中,所述移动模块5553,还用于检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态;
将处于收起状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
在一些实施例中,所述移动模块5553,还用于若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,响应于针对所述目标底层页面的页面退出指令,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述目标底层页面至所述媒体信息流页面;
删除包含所述底层页面和所述目标底层页面在内的所述媒体信息流页面对应的所有底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少一个页面层级。
在一些实施例中,所述删除模块,还用于若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,删除处于所述目标底层页面与所述底层页面之间的其他底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少两个页面层级。
在一些实施例中,所述第二创建模块5552,还用于检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态,以停止播放所述目标视频,并
当第一视频位于所述底层页面的第三位置区域时,在所述第三位置区域创建第二播放器;
通过所述第二播放器播放所述第一视频。
在一些实施例中,所述第一创建模块5551,还用于创建嵌套于所述底层页面的第二底层页面;
响应于针对所述第一视频的视频详情页查看指令,保持所述第一视频持续播放,将所述第二播放器从所述第三位置区域移动至第四位置区域,并切换所述底层页面至所述第二底层页面,通过所述第二底层页面呈现媒体信息流;
其中,所述第二底层页面与所述第二播放器相独立,且所述第一视频融合于所述第二底层页面呈现的媒体信息流。
在一些实施例中,所述移动模块5553,还用于当接收到针对所述目标视频的详情页查看指令时,调用所述目标视频对应的视频播放器接口;
通过所述视频播放器接口,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域。
应用本申请上述实施例,当目标视频位于媒体信息流页面的第一位置区域时,在第一位置区域创建播放器,并通过创建的播放器播放目标视频;当接收到针对目标视频的详情页查看指令时,则在保持目标视频持续播放的同时,将播放器从第一位置区域移动到第二位置区域,并从媒体信息流页面切换至嵌套于该媒体信息流页面的底层页面。这里,该底层页面与播放器是相互独立的,播放器在移动过程中持续播放目标视频,同时也从媒体信息流页面切换到了底层页面,如此在查看媒体信息流页面中正在播放的视频的详情时,能够保证从媒体信息流页面切换至详情页的过程中,视频的播放不被打断,实现了视频播放过程中页面间的无缝切换。
本申请实施例还提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的视频的播放方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的视频的播放方法。
本申请实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本申请实施例提供的视频的播放方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种视频的播放方法,其特征在于,所述方法包括:
呈现包含目标视频的媒体信息流页面,并创建嵌套于所述媒体信息流页面的底层页面;
当所述目标视频位于所述媒体信息流页面的第一位置区域时,在所述第一位置区域创建播放器,并通过所述播放器播放所述目标视频;
当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,并切换所述媒体信息流页面至所述底层页面,通过所述底层页面呈现媒体信息流;
其中,所述底层页面与所述播放器相独立,且所述目标视频融合于所述底层页面呈现的媒体信息流。
2.如权利要求1所述的方法,其特征在于,所述创建嵌套于所述媒体信息流页面的底层页面,包括:
创建嵌套于所述媒体信息流页面的至少两个碎片页面组件,通过所述至少两个碎片页面组件组合形成嵌套于所述媒体信息流页面的底层页面。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标视频为视频片段时,基于活动组件创建位于所述媒体信息流页面的下一层级的第一底层页面,所述第一底层页面,用于播放所述目标视频对应的完整视频;
相应地,所述方法还包括:
当接收到针对所述目标视频的完整视频查看指令时,切换所述媒体信息流页面至所述第一底层页面,并
在所述第一底层页面创建第一播放器,通过所述第一播放器播放所述目标视频对应的完整视频。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收到针对所述目标视频的完整视频退出指令时,切换所述第一底层页面至所述媒体信息流页面,并
删除所述第一底层页面、以及所述嵌套于所述媒体信息流页面的底层页面。
5.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
在播放所述目标视频的过程中,响应于针对所述目标视频的详情页退出指令,保持所述目标视频持续播放,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述底层页面至所述媒体信息流页面。
6.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
当所述播放器处于收起状态时,响应于针对所述目标视频的详情页退出指令,将所述播放器由所述收起状态调整为展开状态,并
将处于展开状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
7.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态;
将处于收起状态的所述播放器从所述第二位置区域移动至所述第一位置区域,并切换所述底层页面至所述媒体信息流页面。
8.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,响应于针对所述目标底层页面的页面退出指令,将所述播放器从所述第二位置区域移动至所述第一位置区域,并
切换所述目标底层页面至所述媒体信息流页面;
删除包含所述底层页面和所述目标底层页面在内的所述媒体信息流页面对应的所有底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少一个页面层级。
9.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
若当前呈现的页面为基于所述底层页面进入的所述媒体信息流页面的目标底层页面时,删除处于所述目标底层页面与所述底层页面之间的其他底层页面;
其中,所述目标底层页面的页面层级,与所述底层页面的页面层级之间相差至少两个页面层级。
10.如权利要求1所述的方法,其特征在于,所述切换所述媒体信息流页面至所述底层页面之后,所述方法还包括:
检测到所述目标视频的内容播放完成时,将所述播放器调整为收起状态,以停止播放所述目标视频,并
当第一视频位于所述底层页面的第三位置区域时,在所述第三位置区域创建第二播放器;
通过所述第二播放器播放所述第一视频。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
创建嵌套于所述底层页面的第二底层页面;
响应于针对所述第一视频的视频详情页查看指令,保持所述第一视频持续播放,将所述第二播放器从所述第三位置区域移动至第四位置区域,并切换所述底层页面至所述第二底层页面,通过所述第二底层页面呈现媒体信息流;
其中,所述第二底层页面与所述第二播放器相独立,且所述第一视频融合于所述第二底层页面呈现的媒体信息流。
12.如权利要求1所述的方法,其特征在于,所述当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,包括:
当接收到针对所述目标视频的详情页查看指令时,调用所述目标视频对应的视频播放器接口;
通过所述视频播放器接口,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域。
13.一种视频的播放装置,其特征在于,所述装置包括:
第一创建模块,用于呈现包含目标视频的媒体信息流页面,并创建嵌套于所述媒体信息流页面的底层页面;
第二创建模块,用于当所述目标视频位于所述媒体信息流页面的第一位置区域时,在所述第一位置区域创建播放器,并通过所述播放器播放所述目标视频;
移动模块,用于当接收到针对所述目标视频的详情页查看指令时,保持所述目标视频持续播放,将所述播放器从所述第一位置区域移动至第二位置区域,并切换所述媒体信息流页面至所述底层页面,通过所述底层页面呈现媒体信息流;
其中,所述底层页面与所述播放器相独立,且所述目标视频融合于所述底层页面呈现的媒体信息流。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现如权利要求1至12任一项所述的视频的播放方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至12任一项所述的视频的播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011448392.XA CN114615553B (zh) | 2020-12-09 | 2020-12-09 | 视频的播放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011448392.XA CN114615553B (zh) | 2020-12-09 | 2020-12-09 | 视频的播放方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114615553A CN114615553A (zh) | 2022-06-10 |
CN114615553B true CN114615553B (zh) | 2023-10-20 |
Family
ID=81856961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011448392.XA Active CN114615553B (zh) | 2020-12-09 | 2020-12-09 | 视频的播放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114615553B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976216B1 (en) * | 2000-11-17 | 2005-12-13 | Streamzap, Inc. | Computer system with remote key press events directed to a first application program and local key press events directed to a second application program |
CN108449638A (zh) * | 2018-03-15 | 2018-08-24 | 广州虎牙信息科技有限公司 | 一种播放广告的方法、装置及电子设备 |
CN110062284A (zh) * | 2019-04-03 | 2019-07-26 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置和电子设备 |
CN110582017A (zh) * | 2019-09-10 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877687B2 (en) * | 2007-08-16 | 2011-01-25 | Yahoo! Inc. | Persistent visual media player |
CN104965693A (zh) * | 2014-08-29 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种视频处理的方法和系统 |
-
2020
- 2020-12-09 CN CN202011448392.XA patent/CN114615553B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976216B1 (en) * | 2000-11-17 | 2005-12-13 | Streamzap, Inc. | Computer system with remote key press events directed to a first application program and local key press events directed to a second application program |
CN108449638A (zh) * | 2018-03-15 | 2018-08-24 | 广州虎牙信息科技有限公司 | 一种播放广告的方法、装置及电子设备 |
CN110062284A (zh) * | 2019-04-03 | 2019-07-26 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置和电子设备 |
CN110582017A (zh) * | 2019-09-10 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114615553A (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108924626B (zh) | 图片生成方法、装置、设备及存储介质 | |
KR102059428B1 (ko) | 콘텐츠 시청 장치 및 그 콘텐츠 시청 옵션을 디스플레이하는 방법 | |
US20200221172A1 (en) | Method for playing multiple videos on mobile terminal, mobile terminal, and readable storage medium | |
WO2019007227A1 (zh) | 一种在页面切换后继续显示视图的方法和装置 | |
US20150248722A1 (en) | Web based interactive multimedia system | |
JP2022506929A (ja) | ディスプレイページのインタラクション制御方法及び装置 | |
KR20160143755A (ko) | 확장 가능 애플리케이션 표현, 액티비티 레벨들, 및 데스크탑 표현 | |
US20170366832A1 (en) | Video reproduction apparatus, control method thereof, and computer-readable storage medium storing program | |
US20130093790A1 (en) | Method and system for implementing augmented reality application | |
KR20170097161A (ko) | 브라우저 디스플레이 캐스팅 기법들 | |
CN111432264A (zh) | 基于媒体信息流的内容展示方法、装置、设备及存储介质 | |
CN111580914A (zh) | 信息流的互动处理方法、装置及电子设备 | |
CN112543365B (zh) | 媒体信息的播放方法、装置、设备及计算机可读存储介质 | |
US20140259083A1 (en) | System and method for use in enhancing the display of multimedia content | |
CN114615553B (zh) | 视频的播放方法、装置、电子设备及存储介质 | |
WO2015154306A1 (en) | Expandable application representation, milestones, and storylines | |
AU2022309659A1 (en) | Video playing method and apparatus, and storage medium | |
CN114390332A (zh) | 显示设备及快速切换分屏应用的方法 | |
CN112948730A (zh) | 网页数据的显示方法、装置、存储介质和电子设备 | |
JP5408970B2 (ja) | 情報処理装置および画面データ表示方法 | |
US20240137617A1 (en) | Video playing method and apparatus, and storage medium | |
CN115225952B (zh) | 视频的播放控制方法、装置、电子设备、存储介质及产品 | |
CN117135390A (zh) | 视频播放方法、装置、设备、存储介质及程序产品 | |
CN117951405A (zh) | 页面跳转处理方法及电子设备 | |
CN113722036A (zh) | 应用接力方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |