首页 / 跨平台视频播放集成方法、装置、设备及介质

跨平台视频播放集成方法、装置、设备及介质实质审查 发明

技术领域

[0001] 本发明涉及基础架构运维技术领域和金融科技领域,尤其涉及一种跨平台视频播放集成方法、装置、设备及存储介质。

相关背景技术

[0002] 在金融领域,视频播放器广泛应用于金融直播、远程客户服务、培训教育以及投资分析等多种场景中。现有技术中的视频播放器通常依赖于系统自带的播放器方案,基于外接纹理的技术框架。然而,这些现有技术在实际应用中存在显著的不足之处,尤其是在跨平台和高性能需求场景下,面临诸多挑战。
[0003] 首先,传统的外接纹理方案在视频渲染上依赖于平台提供的系统接口,如iOS端的CVPixelBufferRef和Android端的SurfaceTexture。这些方案通过共享内存传递图像帧数据,再由播放器渲染到界面。然而,这种处理方式涉及多个线程与渲染流程,极易产生延迟,尤其在复杂的高频交易或金融数据可视化场景下,视频流的卡顿和延迟将直接影响用户的决策速度与判断。
[0004] 其次,现有的播放器通常局限于单一平台或特定硬件,缺乏跨平台的兼容性。在金融服务中,应用程序需要同时支持多种操作系统(如iOS、Android、Windows等),而现有技术在这些系统中的表现往往参差不齐,尤其在处理视频渲染时存在性能差异,导致跨平台一致性差的问题。
[0005] 因此,现有技术无法充分满足金融领域中对于高性能视频播放的要求,尤其是在需要跨平台兼容和高实时性处理的场景中,其局限性愈加明显。如何提高视频播放器的跨平台兼容性、优化视频渲染流程、提升系统资源利用率,已成为急待解决的技术难题。

具体实施方式

[0028] 应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0029] 本发明实施例提供的跨平台视频播放集成方法,可应用在如图1的应用环境中,其中,用户端通过网络与服务端进行通信。服务端可以通过用户端创建自定义视图类,封装不同平台的视频播放功能,在该视图类中定义播放控制接口,生成全局唯一标识符并注册到跨平台框架,通过跨平台框架创建新的界面组件,配置组件引用原生视频播放组件,将界面组件添加到应用程序的用户界面中,建立组件与原生视频播放组件之间的通信机制。本发明通过创建自定义视图类并封装不同平台的视频播放功能,实现了跨平台环境下视频播放器的一致性。通过定义统一的控制接口,减少了平台差异带来的开发复杂性,简化了跨平台功能的适配过程。此外,通过建立界面组件与原生视频播放组件之间的通信机制,实现了跨平台应用与原生系统的高效协作,增强了视频播放的实时性和流畅度。本发明通过减少开发工作量、提升兼容性、优化视频播放性能和改善用户体验,显著提高了跨平台视频播放器的整体性能。其中,用户端可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。下面通过具体的实施例对本发明进行详细的描述。
[0030] 请参阅图2,图2为本发明提供的跨平台视频播放集成方法一实施例的流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0031] 如图2所示,本发明提出的跨平台视频播放集成方法包括如下步骤:
[0032] S10,创建自定义视图类,在所述自定视图类中封装不同平台环境下的视频播放功能;
[0033] 在本实施例中,创建自定义视图类的目的是在跨平台应用中,提供统一的视图层接口,同时将不同平台(如iOS、Android等)的原生视频播放功能封装起来。自定义视图类是一种抽象层,它将跨平台框架中的操作与具体平台的视图实现关联起来。每个视图类根据平台环境封装了特定的播放功能,确保视频播放操作对用户透明,即无论在哪个平台使用,视频播放的界面及控制操作一
[0034] 通过代码定义一个能够支持多平台的视频播放视图类。自定义视图类的主要作用是封装具体平台下的视频播放功能。不同平台有不同的视频播放API,例如在Android上可以使用SurfaceView或TextureView,而在iOS上则可以使用UIView或AVPlayer等系统播放组件。自定义视图类的创建需要兼顾不同平台特性,以便在各个操作系统上实现统一接口调用。
[0035] 例如,在iOS平台,开发者创建一个继承自UIView的类,例如CustomVideoView,该类内部封装iOS的AVPlayer组件,用于渲染和控制视频内容的播放。
[0036] 在Android平台,相应地,开发者创建一个继承自SurfaceView或TextureView的自定义类,例如CustomVideoSurfaceView,该类通过封装Android的MediaPlayer或ExoPlayer,实现视频的播放功能。
[0037] 在跨平台框架整合过程中,这些平台特定的视图类通过跨平台框架(如Flutter、ReactNative)与应用中的统一接口进行集成。开发者可以在自定义视图类中编写通用的调用逻辑,而平台特定的视图类则实现细节。这样,通过统一的接口,应用可以调用各个平台的播放器功能,无需分别处理每个平台的实现差异。
[0038] 封装不同平台下的视频播放功能,意味着开发者在自定义视图类中实现统一的接口,将iOS、Android等平台的视频播放操作抽象出来,避免跨平台开发中重复处理每个平台的播放逻辑。此封装过程包括将平台独有的API(如iOS的AVPlayer和Android的MediaPlayer)封装到统一的播放接口中,确保跨平台应用可以使用相同的代码操作视频播放,而不需要关心每个平台的技术细节。
[0039] 在iOS平台封装过程中,开发者可以通过AVPlayer的接口实现播放、暂停、调整音量等操作,同时在自定义的UIView子类中集成这些功能。通过提供一个如play()的公共方法,外部调用该方法时,实际调用的则是AVPlayer的播放功能。
[0040] 在Android平台,类似的,在Android平台上,通过MediaPlayer或ExoPlayer实现视频播放功能,并将这些原生功能封装到SurfaceView或TextureView的子类中。通过将播放功能封装成统一接口,如play(),可以在不同平台上调用相同的方法来启动播放。
[0041] 示例说明:在金融领域的直播服务应用中,用户可以在iOS和Android设备上通过自定义视图类观看实时金融分析视频。该视图类封装了两种平台的视频播放逻辑,用户在操作时无需感知平台差异,播放体验保持一致。这种封装提高了视频播放功能的响应速度,并确保了在市场波动等关键时刻,用户能够快速接收实时视频分析。
[0042] 通过在自定义视图类中封装不同平台的视频播放功能,实现了跨平台应用在iOS和Android等不同平台下视频播放操作的一致性和简化。有效降低了平台差异带来的复杂性,提高了开发效率,减少了重复的代码编写,并提升了应用的维护性和可扩展性。
[0043] S20,在所述自定义视图类中定义视频播放控制接口,所述控制接口包括播放、暂停、快进和快退操作;
[0044] 在本实施例中,视频播放控制接口是自定义视图类的重要组成部分,其功能在于向外部提供标准化的播放控制操作。这些接口通常包括基本的视频操作功能,如播放、暂停、快进、快退等。通过定义这些接口,应用层无需直接处理原生的播放逻辑,而是通过调用标准化的接口来实现跨平台的操作。该接口的设计需要确保对外提供统一的操作方法,而其内部则负责调用对应平台的原生视频控制API。
[0045] 定义播放控制接口的过程包括声明一系列方法,如play()、pause()、fastForward()、rewind(),这些方法应当符合多平台应用的需求。每个平台具体的实现应符合其原生的API标准,如iOS使用AVPlayer,Android使用MediaPlayer或ExoPlayer。接口应当以统一的形式提供给应用调用,开发者只需调用这些接口,无需关心平台的实现细节。
[0046] 对于每个接口,在不同平台的实现类中执行相应的操作。例如,在iOS上,play()方法会调用AVPlayer.play(),而在Android上,play()则调用MediaPlayer.start()或ExoPlayer.play()。类似的,pause()方法在iOS上调用AVPlayer.pause(),在Android上调用MediaPlayer.pause()。
[0047] 负责启动视频的播放操作,在自定义视图类中封装了启动视频的逻辑。外部调用play()方法时,视图类内部将执行与平台对应的播放逻辑。
[0048] 提供暂停功能,允许用户在播放过程中暂停视频。外部调用pause()方法时,自定义视图类会调用原生平台的暂停功能。
[0049] 快进功能允许用户跳过部分内容,通过调整播放进度。调用fastForward()时,内部会根据平台的API调整视频的当前播放时间。
[0050] 快退功能类似于快进,允许用户回退到之前的内容。调用rewind()时,内部逻辑会调整视频的播放进度,使其回退到指定时间点。
[0051] 示例说明:在金融领域的移动应用中,用户可以通过自定义视图类内定义的控制接口,轻松控制实时金融新闻或市场分析视频的播放、暂停、快进和回退。这种灵活的操作方式有助于用户在重要信息展示时进行暂停或快进,以便更高效地获取所需数据,提升了金融服务的实用性与互动性。
[0052] 通过定义统一的视频播放控制接口,跨平台应用可以无缝调用视频播放功能,而无需关心各平台的具体实现。不仅简化了开发流程,还提高了视频控制的可维护性和扩展性,确保在不同平台上提供一致的用户体验,并降低了开发的复杂性。
[0053] S30,为所述自定义视图类生成全局唯一标识符,并在跨平台应用程序启动时将所述自定义视图类与所述全局唯一标识符注册到跨平台框架中,以注册原生视频播放组件;
[0054] 在本实施例中,在跨平台应用中,为了有效管理和引用自定义视图类,每个视图类实例需要一个全局唯一标识符(UUID)。该标识符确保在应用中能够唯一标识每个视图实例,并防止重复引用或冲突。生成全局唯一标识符的过程可以通过平台的通用库(如Java中的UUID.randomUUID()或iOS中的NSUUID类)来实现,确保在不同平台下生成的标识符都具备全球唯一性。
[0055] 在应用启动时,系统为每个自定义视图类实例生成一个唯一的标识符。对于Android平台,可以使用UUID.randomUUID()生成唯一标识符;在iOS平台上,可以使用NSUUID类的UUID()方法生成UUID。每个平台都会按照自己的方法生成一个唯一的标识符,并确保该标识符在整个应用生命周期中保持一致。
[0056] 生成的标识符需要存储在应用的注册中心或类似数据结构中,以便在不同组件之间传递或引用。同时,注册中心会保存每个视图类与其UUID的映射关系,确保在需要时可以快速查找到视图类的实例。
[0057] 跨平台框架需要管理不同平台的自定义视图类实例。通过将视图类与其全局唯一标识符注册到框架中,可以确保框架在运行时能够正确识别和调用这些实例。注册过程不仅仅是简单的标识符与视图类的映射,还需要跨平台框架在每次应用启动时自动加载并管理这些视图类。
[0058] 在跨平台应用启动时,系统会自动调用一个注册函数,将生成的全局唯一标识符与自定义视图类注册到跨平台框架中。例如,在ReactNative或Flutter中,使用相应的插件管理工具(如React Native的AppRegistry或Flutter的PluginRegistrar)将这些组件注册到框架。这样,在应用的生命周期中,每个视图类都能通过其唯一标识符被正确调用和管理。
[0059] 通过UUID和视图类的注册机制,框架可以在运行时动态加载和引用原生视频播放组件。每当需要实例化一个新的视图类时,框架会根据UUID自动识别并调用该类的实例化方法,将其加载到界面中。
[0060] 原生视频播放组件是系统播放器的一个封装层,它与跨平台框架集成,使得自定义视图类可以直接调用平台的视频播放功能。通过将这些组件与自定义视图类关联,应用可以在不同平台上调用视频播放功能,而无需单独处理每个平台的差异。注册过程确保每个平台的播放组件都能在统一的接口下被跨平台框架调用。
[0061] 在跨平台应用启动时,除了注册自定义视图类外,系统还会同时注册对应的原生视频播放组件。这些组件通常在各个平台上各自实现,比如iOS上的AVPlayer和Android上的MediaPlayer。框架通过UUID关联自定义视图类与原生播放组件,以便在应用中调用这些功能。
[0062] 示例说明:在金融领域的跨平台应用中,实时视频播放功能非常关键,例如实时金融直播或视频会议服务。通过为每个视频播放组件生成全局唯一标识符,并将其注册到跨平台框架中,确保了不同平台(如Android和iOS)上视频播放组件的一致性和高效管理。在一个大型金融直播平台中,当用户需要观看不同的实时直播或市场分析时,系统可以通过唯一标识符快速调用相应的视频播放组件,保证每个用户能无缝切换视频流,提供流畅的观看体验,减少了平台兼容性问题带来的不便。
[0063] 通过为自定义视图类生成全局唯一标识符,并在应用启动时注册到跨平台框架,解决了不同平台下视频播放组件引用和管理复杂的问题。提高了跨平台应用中视频播放组件的管理效率,确保了每个视频播放组件的唯一性和准确性,同时简化了跨平台应用的开发和维护流程,提升了系统的稳定性和性能。
[0064] S40,使用跨平台框架提供的组件创建方法,创建新的界面组件,并配置所述界面组件以引用已注册的所述原生视频播放组件;
[0065] 在本实施例中,跨平台框架(如Flutter、ReactNative)通常提供标准化的API,用于在不同平台上创建用户界面组件。通过这些框架的组件创建方法,开发者可以定义和构建跨平台的UI界面,确保应用在不同操作系统上表现一致。该步骤的重点在于利用框架提供的接口,生成一个新的界面组件,以便进一步引用之前已经注册好的原生视频播放组件。
[0066] 在跨平台框架中,开发者通过调用标准API(如Flutter的create方法或ReactNative的View组件)创建一个新的UI组件实例。在Flutter中,可以通过PlatformView组件创建跨平台的视图,允许Flutter应用使用iOS和Android的原生视图。在ReactNative中,可以通过NativeModules桥接来实现与原生组件的交互。
[0067] 新创建的组件会通过框架的生命周期方法进行初始化。在这个过程中,开发者可以配置界面组件的基础属性(如宽度、高度、显示位置等),确保界面适配各种设备和屏幕分辨率。
[0068] 跨平台框架中的界面组件需要能够引用之前已注册好的原生视频播放组件。通过这种方式,界面组件能够调用原生的播放逻辑,从而在不同的操作系统上实现视频播放功能。该配置的目的是在界面组件和原生视频播放组件之间建立映射关系,使得界面组件可以通过调用框架接口来控制视频播放。
[0069] 在创建了新的界面组件之后,开发者需要通过框架提供的接口将其与之前注册的原生视频播放组件关联。在Flutter中,使用PlatformView将Flutter端的视图和原生视图绑定。在React Native中,可以通过NativeModules或RCTView实现对原生视频播放器的引用,确保用户操作可以传递给原生视频播放组件。
[0070] 在界面组件中,还需配置原生播放组件的相关属性,例如视频的URL、播放控制、音量设置等。开发者可以通过框架提供的接口,将这些属性与原生组件的功能相对应,使得界面组件能够直接控制原生的视频播放操作。
[0071] 示例说明:在金融领域的移动应用中,用户可以通过新创建的界面组件观看实时市场分析和视频会议。开发者使用跨平台框架创建了一个UI组件,并通过配置组件属性将其引用到原生的视频播放组件中。用户在操作界面组件时,可以直接控制视频的播放、暂停和快进等操作,确保视频在Android和iOS平台上的一致性和高效性。这种实现方式大大提高了用户在金融应用中的互动体验,尤其在需要快速响应市场变化的场景下,确保了用户操作的实时性与精确性。
[0072] 通过使用跨平台框架提供的组件创建方法,开发者能够快速生成新的用户界面组件,并与原生视频播放组件建立紧密的关联。可以确保视频播放功能在不同平台上的一致性和高效性,减少了开发的复杂性。保证了跨平台视频播放操作的流畅性,提升了用户体验,同时大大简化了视频组件的集成流程。
[0073] S50,将所述界面组件添加到跨平台应用程序的用户界面布局中,并配置界面组件的属性,所述属性包括尺寸、位置和视频源,并建立界面组件与原生视频播放组件之间的通信机制。
[0074] 在本实施例中,将已经创建并配置好的界面组件嵌入到跨平台应用的UI布局中,使得视频播放器能够正常显示并响应用户操作。跨平台框架(如Flutter、React Native)提供了布局系统,允许开发者将组件按照布局规则(如水平、垂直布局或相对布局)进行排列。通过将界面组件添加到布局中,视频播放器可以作为应用中的一个独立视图显示。
[0075] 在跨平台框架中,开发者需要定义布局结构,以容纳新创建的界面组件。通过框架提供的布局管理系统(如Flutter中的Column、Row或ReactNative中的Flexbox布局)来组织UI元素,将视频播放器组件嵌入其中。开发者可以根据需求定义组件在页面中的位置、大小及其与其他组件的相对关系。
[0076] 在应用运行时,界面组件会根据定义的布局加载到用户界面中。此时,视频播放组件成为应用界面的一部分,用户可以通过UI与播放器进行交互。
[0077] 配置界面组件的属性是确保视频播放器的显示效果和功能的一部分。关键属性包括:
[0078] 尺寸:确定视频播放器的宽度和高度,确保其适配不同设备和屏幕分辨率。
[0079] 位置:定义组件在布局中的相对位置(如在顶部、底部或中间),以确保用户能够方便地观看视频内容。
[0080] 视频源:指视频播放器播放的视频文件的路径或URL,视频源可以是本地文件,也可以是通过网络流媒体提供的视频内容。
[0081] 开发者可以根据设备屏幕的大小,动态设置播放器的宽高属性,确保视频播放器在所有设备上都能正常显示。例如,在Flutter中,可以使用MediaQuery获取屏幕尺寸并根据需要设置视频播放器的大小。通过布局管理器(如ReactNative中的position或Flutter中的Align)设置视频播放器在界面中的位置,确保其在应用布局中显示在预期的位置。在视频播放器初始化时,开发者需要为播放器指定一个视频源(如网络流媒体URL或本地视频文件路径)。这个视频源将被传递给播放器组件,供其播放视频内容。
[0082] 通信机制是确保界面组件(跨平台框架部分)与原生视频播放组件(平台特有部分)能够实时互动的关键。通过这一机制,界面组件可以发送命令(如播放、暂停、跳转)给原生播放器组件,同时接收来自原生播放器的状态反馈(如缓冲状态、播放进度、错误信息等)。
[0083] 开发者需要在界面组件和原生视频播放组件之间设计一套通信协议,定义如何传递播放控制命令以及如何反馈状态信息。通常,这种通信是通过跨平台框架提供的通道(如Flutter的Platform Channels或React Native的NativeModules)来实现的。
[0084] 在通信过程中,界面组件会通过调用特定的接口(如播放、暂停)将命令传递给原生视频播放组件,原生组件则会通过回调函数或事件监听器将当前的播放状态(如播放结束、缓冲完成等)传递给界面组件,确保界面和播放状态同步更新。
[0085] 示例说明:在金融应用中,实时视频播放功能用于展示市场分析和实时数据流。例如,在用户打开一个股票市场分析应用时,应用可以通过跨平台框架创建视频播放器组件,将其嵌入到UI布局中,并配置组件的尺寸和视频源(如实时市场数据流的URL)。通过通信机制,用户可以控制视频的播放、暂停,同时接收视频播放状态的反馈(如缓冲完成、实时播放进度),从而保证用户获得最佳的观看体验,有效提高他们对市场的把握。
[0086] 通过将界面组件添加到应用布局中,并配置其属性,视频播放功能可以无缝集成到跨平台应用中。结合通信机制,界面组件和原生视频播放组件之间能够实现实时交互,确保用户操作和播放状态的反馈一致性。增强了视频播放的流畅性和用户体验,并且简化了跨平台开发过程中视频播放器的集成难度。
[0087] 本发明涉及基础架构运维技术领域和金融科技领域,公开了一种跨平台视频播放集成方法,通过创建自定义视图类,封装不同平台的视频播放功能,在该视图类中定义播放控制接口,生成全局唯一标识符并注册到跨平台框架,通过跨平台框架创建新的界面组件,配置组件引用原生视频播放组件,将界面组件添加到应用程序的用户界面中,建立组件与原生视频播放组件之间的通信机制。本发明通过创建自定义视图类并封装不同平台的视频播放功能,实现了跨平台环境下视频播放器的一致性。通过定义统一的控制接口,减少了平台差异带来的开发复杂性,简化了跨平台功能的适配过程。此外,通过建立界面组件与原生视频播放组件之间的通信机制,实现了跨平台应用与原生系统的高效协作,增强了视频播放的实时性和流畅度。本发明通过减少开发工作量、提升兼容性、优化视频播放性能和改善用户体验,显著提高了跨平台视频播放器的整体性能。
[0088] 在一个实施例中,上述S10中,在所述自定视图类中封装不同平台环境下的视频播放功能,包括:
[0089] S101,开发能够在不同平台环境上运行的独立视频播放功能模块;
[0090] S102,为所述独立视频播放功能模块定义统一接口;
[0091] S103,创建适配器类,所述适配器类用于将所述统一接口的方法转换为目标平台环境的视频播放API调用;
[0092] S104,将所述适配器类与所述自定义视图类关联,使所述自定义视图类能够通过统一接口调用目标平台环境的视频播放功能。
[0093] 在本实施例中,在跨平台应用中,由于不同平台(如iOS和Android)拥有各自的系统架构和视频播放API,因此需要开发能够在不同平台环境下运行的独立视频播放功能模块。封装的主要目标是创建一个通用的视图类,使其可以在不同平台上调用各自的播放API,实现一致的视频播放操作。
[0094] 在每个平台中,开发者需要分别实现一个与系统API对接的视频播放模块。例如,在iOS上可以使用AVPlayer,而在Android上可以使用MediaPlayer或ExoPlayer。这些模块封装了具体的视频播放逻辑,并能够响应播放、暂停、快进等操作。每个平台的独立模块在实现视频播放的基础功能上,确保其具备相同的能力(如支持本地和网络视频源)。
[0095] 在跨平台应用启动时,系统会动态加载各平台的独立视频播放模块,并与界面组件进行关联。根据用户操作,独立模块会被触发,实现播放功能。
[0096] 为了保证跨平台应用的简化与一致性,必须为各平台的独立视频播放功能模块定义一个统一的接口。这个接口抽象出视频播放的常用操作,如play()、pause()、seekTo()等,确保在不同平台上调用时,开发者不必关心具体平台的差异。
[0097] 开发者需要设计一个包含常见视频操作的统一接口。例如,定义IVideoPlayer接口,其中包含方法play()、pause()、seekTo(intposition)等。每个平台的独立模块都需要实现该接口,并提供与平台API对应的实现。该接口作为跨平台调用的统一入口,应用层调用此接口时,无需关心底层的平台细节,框架自动根据平台选择合适的实现。
[0098] 适配器类用于将统一接口与不同平台的视频播放API连接起来。通过适配器模式,可以将平台特有的API调用隐藏在适配器类中,确保跨平台应用的逻辑不受底层实现的影响。
[0099] 开发者需要为每个平台设计相应的适配器类,例如iOSVideoPlayerAdapter和AndroidVideoPlayerAdapter。这些适配器类将跨平台接口的方法转换为对应平台的API调用。例如,在iOS的适配器类中,play()方法会调用AVPlayer.play(),而在Android适配器类中,play()方法调用MediaPlayer.start()或ExoPlayer.play()。适配器通过将统一接口的调用转换为各平台API的调用,保证了每个平台的视频播放操作一致性,简化了开发。
[0100] 自定义视图类是跨平台应用的视图层,它通过调用适配器类中的方法与各个平台的API交互。通过将适配器类与自定义视图类关联,可以确保自定义视图类能够统一调用适配器的方法,从而间接地调用平台特有的API。
[0101] 在自定义视图类中,开发者需要为每个平台实例化相应的适配器类。通过判断当前运行的操作系统,自定义视图类会选择合适的适配器类与之关联。例如,如果应用在iOS上运行,则自定义视图类会调用iOSVideoPlayerAdapter;如果在Android上运行,则会调用AndroidVideoPlayerAdapter。一旦适配器类与自定义视图类关联,自定义视图类中的操作(如play())会通过适配器传递给底层平台的播放API,确保所有平台上的视频播放功能一致。
[0102] 本实施例通过封装不同平台环境下的视频播放功能,并利用统一接口和适配器模式,简化了跨平台应用中视频播放功能的开发。开发者无需为每个平台单独编写不同的代码,只需通过统一接口调用平台特定的播放API。降低了开发和维护成本,提升了代码复用性和一致性,确保了跨平台应用中视频播放体验的统一性和流畅性。
[0103] 在一个实施例中,上述S30中,为所述自定义视图类生成全局唯一标识符,并在跨平台应用程序启动时将所述自定义视图类与所述标识符注册到跨平台框架中,包括:
[0104] S301,基于兼容需求和应用场景,确定全局唯一标识符的生成策略;
[0105] S302,基于所述生成策略,为所述自定义视图类生成所述全局唯一标识符;
[0106] S303,构建注册函数,所述注册函数用于将自定义视图类与全局唯一标识符的关联关系注册到跨平台框架;
[0107] S304,在跨平台应用程序启动时,调用所述注册函数,将所述自定义视图类与全局唯一标识符的关联关系添加到跨平台框架的注册中心;
[0108] S305,在所述注册中心记录所述自定义视图类与全局唯一标识符的映射关系。
[0109] 在本实施例中,为了确保跨平台应用中的每个自定义视图类实例都能被唯一标识,需要为其生成一个全局唯一标识符(UUID)。生成策略应根据平台的兼容性和应用场景决定,包括考虑不同操作系统的特性(如iOS和Android)以及如何在这些平台上管理视图类的生命周期和持久化数据。该生成策略确保所有平台都能使用标准化的标识符机制,以避免标识冲突。
[0110] 开发者可以选择基于UUID标准(如RFC 4122)的标识符生成方式,在各平台上生成兼容的UUID。例如,Android平台可以使用UUID.randomUUID(),而iOS则使用NSUUID类的UUID()方法生成全局唯一标识符。这种方式能够确保跨平台环境中生成的标识符具有全球唯一性,避免重复和冲突。
[0111] 依据前述确定的生成策略,在应用程序的生命周期中为每个自定义视图类生成唯一的标识符。在不同的运行时环境下,该标识符应保持一致,确保每个视图类在不同操作系统中都能通过该标识符进行唯一标识。
[0112] 在应用启动时,系统根据平台提供的API为自定义视图类生成UUID。在iOS平台,使用NSUUID生成一个UUID对象并返回标识符;在Android平台,使用UUID.randomUUID()生成UUID。该标识符将作为视图类的唯一标志符,确保其在后续操作中的一致性。
[0113] 注册函数负责将自定义视图类与生成的全局唯一标识符关联起来。这一步骤确保在应用运行时,自定义视图类可以通过其标识符被正确引用和管理。注册函数的主要任务是将标识符与视图类实例进行绑定,并在跨平台框架中建立映射关系。
[0114] 开发者需要构建一个注册函数,该函数在应用启动时被调用,并负责将视图类实例与其标识符关联。这个注册函数可能通过跨平台框架提供的API进行调用(如Flutter的PluginRegistrar或React Native的AppRegistry)。注册函数将标识符作为键,将视图类实例作为值存储在注册中心中。
[0115] 在应用程序启动时,跨平台框架需要自动调用注册函数,将每个视图类与其唯一标识符关联,并将其添加到框架的注册中心。注册中心是一个存储结构,它维护着视图类与其标识符之间的映射,确保可以在应用的任何部分通过标识符访问相应的视图类。
[0116] 当应用程序启动时,系统会自动调用注册函数,将每个自定义视图类与其生成的全局唯一标识符注册到跨平台框架的注册中心中。该过程确保应用中每个视图类都能通过标识符被唯一识别和访问。
[0117] 注册中心的主要作用是维护视图类和全局唯一标识符之间的映射关系。通过这种映射,跨平台框架可以在需要时快速查找和引用视图类实例。注册中心作为一个中央存储结构,确保所有视图类都能通过其标识符进行访问。
[0118] 在注册中心中,系统会通过键值对的形式存储自定义视图类的实例和其标识符。开发者可以通过跨平台框架提供的API调用这些映射关系,在不同场景下快速查找和使用这些视图类实例。
[0119] 本实施例通过为自定义视图类生成全局唯一标识符,并将其注册到跨平台框架,确保了跨平台环境下视图类实例的唯一性和一致性。这种注册机制能够有效管理视图类的生命周期,防止标识符冲突,并简化了应用在不同平台上的组件引用和管理,提高了系统的扩展性和维护性。
[0120] 在一个实施例中,上述S40包括:
[0121] S401,从所述跨平台框架的注册中心获取与所述自定义视图类对应的全局唯一标识符;
[0122] S402,使用跨平台框架提供的组件创建方法,初始化一个新的界面组件实例;
[0123] S403,根据所述全局唯一标识符,从跨平台框架中检索并实例化相应的已注册的原生视频播放组件;
[0124] S404,将实例化的原生视频播放组件与新创建的界面组件关联。
[0125] 在本实施例中,跨平台框架的注册中心保存了所有自定义视图类及其对应的全局唯一标识符。在创建新组件时,首先需要从注册中心获取与目标自定义视图类相关联的唯一标识符,以确保引用正确的原生视频播放组件。这一步确保了创建的新界面组件与之前注册的原生组件能够正确关联。
[0126] 通过调用跨平台框架提供的API(如Flutter中的PluginRegistrar或React Native中的AppRegistry),从注册中心获取与自定义视图类对应的全局唯一标识符。该标识符是创建新界面组件时用于正确定位和关联原生视频播放组件的关键。
[0127] 跨平台框架提供了标准化的API,用于在应用中创建新的界面组件。通过这些创建方法,开发者可以生成符合平台特性的新组件,并将其嵌入到应用的用户界面中。该步骤旨在利用框架的组件创建方法,生成一个新的、可操作的视频播放界面。
[0128] 开发者通过跨平台框架的API,如Flutter的PlatformView或ReactNative的View,初始化一个新的界面组件实例。该组件将作为视频播放功能的容器,允许用户进行视频播放的交互操作。初始化过程中,开发者可以配置界面组件的基本属性(如尺寸、位置、样式等),确保其外观和交互功能符合应用需求。
[0129] 通过前一步获取到的全局唯一标识符,开发者可以在跨平台框架中检索已注册的原生视频播放组件实例。该步骤的目标是从框架中找到与标识符对应的组件实例,并加载其功能,使其能够在新创建的界面组件中使用。
[0130] 跨平台框架的注册中心保存了每个组件的唯一标识符与其原生实现的映射关系。通过调用API,根据标识符检索已注册的原生视频播放组件。Flutter可以使用PlatformChannels与原生代码进行通信,而React Native可以使用NativeModules来检索和实例化对应的原生视频播放组件。一旦检索到原生视频播放组件,开发者需要将其实例化,使其可以在新创建的界面组件中被调用和操作。
[0131] 最后一步是将已实例化的原生视频播放组件与新创建的界面组件关联起来。此关联使得用户在跨平台应用中操作界面组件时,能够实际控制底层的原生视频播放功能。这种关联确保了跨平台应用与原生平台的视频播放逻辑保持一致。
[0132] 通过跨平台框架提供的接口,开发者可以将界面组件与已实例化的原生视频播放组件进行绑定。通过该绑定,界面组件的操作(如播放、暂停、快进等)会直接传递给底层的原生视频播放组件,确保功能的正常运作和用户体验的一致性。
[0133] 本实施例通过使用跨平台框架的组件创建方法生成界面组件,并与原生视频播放组件进行关联,能够有效管理跨平台应用中的视频播放功能。不仅简化了开发过程,还确保了不同平台上的一致性,实现了原生性能的优化和跨平台体验的提升。
[0134] 在一个实施例中,上述S50中,将所述界面组件添加到跨平台应用程序的用户界面布局中,并配置界面组件的属性,包括:
[0135] S501,确定需要播放的视频内容,基于所述视频内容为所述界面组件分配视频源,所述视频源包括网络流地址或本地文件路径;
[0136] S502,根据所述视频内容的尺寸和目标设备的屏幕大小,设计用户界面布局;
[0137] S503,根据所述视频内容和用户界面布局要求,配置所述界面组件的尺寸、位置和样式;
[0138] S504,在所述界面组件中集成播放控件,所述播放控件包括播放按钮、进度条或音量控制;
[0139] S505,将所述界面组件添加到所述用户界面布局中。
[0140] 在本实施例中,视频播放的核心在于视频源的选择。视频源可以是本地文件路径,也可以是网络流媒体地址。此步骤要求根据用户的需求或场景确定视频源的具体类型,并将该视频源分配给界面组件,以便组件加载和播放相应的视频内容。
[0141] 如果视频内容存储在设备本地,开发者可以通过文件路径将其传递给视频播放器。例如,在Android上使用Uri.parse()来解析本地文件路径,在iOS上使用NSURL对象。
[0142] 对于网络视频,开发者需要将视频流地址作为视频源传递给界面组件。通过跨平台框架的API(如Flutter的NetworkPlayer或React Native的Video组件)设置视频流的URL。
[0143] 视频内容的显示效果与设备屏幕大小密切相关。为了确保视频播放的最佳用户体验,界面组件的布局设计需要结合视频的分辨率和设备屏幕尺寸,确保视频内容的比例和位置在不同设备上都能适配。
[0144] 开发者可以通过获取设备的屏幕尺寸(如在Flutter中使用MediaQuery,在ReactNative中使用Dimensions)来调整视频组件的宽高比例,并根据不同屏幕的分辨率动态设置组件的尺寸,确保播放时视频不会被拉伸或裁剪。
[0145] 使用跨平台框架的布局系统(如Flutter中的Align或AspectRatio,React Native中的Flexbox布局)设计用户界面,确保视频在应用布局中的适当位置,提供最佳观看体验。
[0146] 视频播放器界面组件需要根据视频内容的特性(如宽高比、分辨率)和用户界面的整体布局要求(如页面结构、用户操作习惯)配置其显示属性。确保在不同的设备上,视频组件的尺寸、位置和样式(如边框、背景色等)都能提供一致的体验。
[0147] 在创建视频播放界面组件时,开发者需要根据屏幕尺寸和视频的实际分辨率配置组件的宽高。例如,开发者可以将视频的宽高比固定为16:9或4:3,并根据屏幕大小动态调整其位置,保证视频的完整显示。
[0148] 根据应用的UI设计规范,为视频播放组件配置样式属性,如边框、背景颜色、阴影效果等,确保与其他界面元素协调一致。
[0149] 为了方便用户控制视频的播放,界面组件中需要集成播放控件,包括播放按钮、进度条、音量控制等。这些控件允许用户与视频播放进行交互,如控制播放进度、调整音量或暂停/恢复播放。
[0150] 在界面组件中设计一个播放/暂停按钮,使用跨平台框架提供的交互控件(如Flutter中的IconButton或ReactNative中的TouchableOpacity)来捕捉用户的播放操作。
[0151] 使用进度条控件(如Flutter中的Slider,ReactNative中的ProgressBar)展示视频的播放进度,并允许用户拖动进度条以跳转到视频的任意时间点。
[0152] 为用户提供调整音量的控件(如滑动条或按钮),并通过调用原生平台的API控制音量设置。
[0153] 在完成界面组件的配置和控件集成后,需要将该组件添加到应用的整体布局中,使其成为应用UI的一部分,允许用户观看和控制视频播放。
[0154] 使用跨平台框架的布局系统(如Flutter的Column、Row布局或React Native的View组件),将配置好的视频播放组件及其控制元素(如按钮和进度条)嵌入到用户界面中,使其能够与其他界面元素协同工作。
[0155] 本实施例通过确定视频源、配置界面组件的尺寸和样式、集成播放控件,并将组件添加到用户界面布局中,确保了视频播放功能的完整集成和流畅交互。使得跨平台应用能够在不同设备上提供一致的视频观看体验,并允许用户自由控制播放进度、音量等功能。
[0156] 在一个实施例中,上述S50中,建立界面组件与原生视频播放组件之间的通信机制,包括:
[0157] S506,为所述界面组件和所述原生视频播放组件之间设计通信协议,所述通信协议用于确定界面组件和原生视频播放组件之间交换信息的格式和规则;
[0158] S507,为所述界面组件和所述原生视频播放组件之间定义消息传递接口,所述消息传递接口用于界面组件发送命令和接收来自原生视频播放组件的事件;
[0159] S508,在所述界面组件中创建事件监听器,用于监听用户交互,并向原生视频播放组件发送相应的命令;
[0160] S509,在原生视频播放组件中设置状态回调机制,用于将播放状态变化通知至所述界面组件;
[0161] S510,为所述界面组件和所述原生视频播放组件之间配置数据通道,所述数据通道用于在界面组件和原生视频播放组件之间传递视频元数据。
[0162] 在本实施例中,通信协议是界面组件和原生视频播放组件之间交互的基础。设计通信协议的目的是为了确保这两个组件能够通过相同的规则和格式进行信息的交换。通信协议需要定义传递命令(如播放、暂停、快进等)和接收状态反馈(如播放状态、缓冲状态、错误信息等)的格式。
[0163] 通信协议需要定义消息的格式,如采用JSON或二进制数据来描述传递的信息。开发者可以规定每个命令的具体格式,包括命令名称、参数类型(如时间戳、进度、音量值等)和返回值。
[0164] 除了格式外,还需规定信息交换的规则,包括发送频率、响应时间等。这可以确保界面组件和原生视频播放组件能够在合适的时机进行有效的通信。
[0165] 消息传递接口负责界面组件与原生视频播放组件之间的双向通信。界面组件通过该接口发送命令(如播放、暂停、调整音量等),而原生视频播放组件通过该接口将事件(如播放状态、错误、结束等)反馈给界面组件。
[0166] 通过跨平台框架提供的API(如Flutter的MethodChannel或ReactNative的NativeModules),界面组件可以调用消息传递接口,向原生组件发送控制命令。这些命令会按照通信协议的格式和规则传递到原生播放组件。
[0167] 原生视频播放组件可以通过回调机制或事件监听器,将状态变化通过消息传递接口发送到界面组件,例如当前的播放进度、缓冲状态或错误状态。
[0168] 事件监听器用于捕捉用户的交互操作(如点击播放按钮、拖动进度条等),并根据这些操作向原生视频播放组件发送相应的控制命令。事件监听器确保用户操作能够实时反映到视频播放中,并且界面组件能够根据用户的操作做出反应。
[0169] 在界面组件中设置多个事件监听器,例如点击、拖动等操作。通过这些监听器,系统可以捕捉用户对播放、暂停、快进、音量控制等操作的需求。
[0170] 捕获用户交互后,事件监听器会调用消息传递接口,向原生视频播放组件发送相应的命令。这可以通过跨平台框架的API进行实现,如Flutter中的onPressed或ReactNative中的onPress。
[0171] 状态回调机制确保原生视频播放组件能够将自身的状态变化(如播放进度、缓冲完成、播放结束等)实时通知界面组件。界面组件通过这些回调可以更新UI,如更新进度条或提示播放完成。
[0172] 原生视频播放组件需要设计一个回调机制,用于监听自身状态变化,并通过消息传递接口通知界面组件。例如,在播放进度变化时,调用进度回调方法,发送当前播放时间。
[0173] 当原生组件状态变化时,系统会通过回调机制将状态信息传递到界面组件。界面组件则可以根据这些状态信息调整UI,如更新进度条、显示播放完成消息等。
[0174] 数据通道用于在界面组件和原生视频播放组件之间传递视频元数据(如视频时长、当前播放时间、分辨率、格式等)。这为视频播放组件提供了重要的运行时信息,帮助界面组件和原生组件保持同步。
[0175] 通过跨平台框架的API(如Flutter的EventChannel或React Native的Bridge),开发者可以配置数据通道,用于传递视频的元数据。数据通道能够持续更新视频的播放进度、时长等信息,使得界面组件能够显示当前的播放状态。
[0176] 通过数据通道,界面组件能够接收来自原生视频播放组件的元数据,并将其显示给用户,保证播放进度和元数据的同步更新。
[0177] 本实施例通过建立界面组件与原生视频播放组件之间的通信机制,实现了两者之间的高效交互。通信协议确保信息交换的格式和规则一致,消息传递接口提供了命令和事件传递的通道,事件监听器和状态回调机制则保证了用户操作和视频播放状态的实时同步。数据通道进一步确保了元数据的传递和显示,提供了流畅、无缝的视频播放体验。
[0178] 在一个实施例中,上述S20中,在所述自定义视图类中定义视频播放控制接口,包括:
[0179] S201,分析所述视频播放功能的需求,确定所需的控制命令;
[0180] S202,在所述自定义视图类中定义播放视频控制接口的规格,包括控制命令的名称、参数类型和返回值类型。
[0181] 在本实施例中,在定义视频播放控制接口之前,首先需要分析用户交互和应用场景中视频播放的具体需求。根据这些需求,开发者需要确定需要哪些控制命令来实现基本的播放功能。常见的控制命令包括:播放、暂停、停止、快进、快退、调整音量、静音等。每个控制命令都需要有明确的输入(如用户的操作)和输出(如播放器的状态反馈)。
[0182] 开发者需要与产品设计团队共同分析用户使用视频播放器的场景,确定哪些命令是必要的。例如,对于一个需要用户经常跳过广告的应用,快进命令将是必不可少的;而在教育应用中,暂停和重新播放功能则是关键。
[0183] 根据分析结果,确定具体的控制命令。例如,可以确定以下命令:
[0184] play():开始播放视频;
[0185] pause():暂停当前播放的视频;
[0186] stop():停止播放;
[0187] seekTo(intposition):跳转到指定的时间点;
[0188] setVolume(float volume):设置音量大小。
[0189] 在确定了视频播放的功能需求和控制命令之后,接下来需要定义这些命令的接口规格。规格包括控制命令的名称、参数类型、返回值类型等。每个接口应清晰描述其功能,以及它所需的参数类型(如时间、音量等)和执行后的返回值(如成功与否,或当前播放状态)。
[0190] 为每个视频控制操作定义明确的名称,例如play()、pause()、seekTo(int position)等。这些名称需要统一且具有明确含义,方便开发者调用。
[0191] 每个控制命令需要根据实际需求定义所需的参数类型。例如:
[0192] play():不需要参数,直接启动播放;
[0193] seekTo(int position):需要一个整数参数,表示跳转到的时间点(毫秒或秒);
[0194] setVolume(float volume):需要一个浮点数参数,表示音量大小(0.0到1.0)。
[0195] 定义每个接口的返回值类型,如布尔值(true/false)表示操作是否成功,或者返回当前播放状态等。例如:
[0196] play():返回布尔值,指示视频是否成功播放;
[0197] seekTo():返回布尔值,指示跳转操作是否成功。
[0198] 本实施例通过分析视频播放功能需求并定义控制接口的规格,开发者能够创建一个具有明确结构的接口体系,简化了应用层对视频播放功能的调用。不仅使得控制操作更加直观,而且通过明确的参数和返回值类型,使得功能更加稳定和易于维护。
[0199] 在一实施例中,提供一种跨平台视频播放集成装置,该跨平台视频播放集成装置与上述实施例中跨平台视频播放集成方法一一对应。参照图3,图3为本发明跨平台视频播放集成装置一较佳实施例的功能模块示意图。视图封装模块10、控制接口模块20、组件注册模块30、界面创建与配置模块40和界面布局与通信模块50。各功能模块详细说明如下:
[0200] 视图封装模块10,用于创建自定义视图类,在所述自定视图类中封装不同平台环境下的视频播放功能;
[0201] 控制接口模块20,用于在所述自定义视图类中定义视频播放控制接口,所述控制接口包括播放、暂停、快进和快退操作;
[0202] 组件注册模块30,用于为所述自定义视图类生成全局唯一标识符,并在跨平台应用程序启动时将所述自定义视图类与所述全局唯一标识符注册到跨平台框架中,以注册原生视频播放组件;
[0203] 界面创建与配置模块40,用于使用跨平台框架提供的组件创建方法,创建新的界面组件,并配置所述界面组件以引用已注册的所述原生视频播放组件;
[0204] 界面布局与通信模块50,用于将所述界面组件添加到跨平台应用程序的用户界面布局中,并配置界面组件的属性,所述属性包括尺寸、位置和视频源,并建立界面组件与原生视频播放组件之间的通信机制。
[0205] 在一实施例中,视图封装模块10,具体用于:
[0206] 开发能够在不同平台环境上运行的独立视频播放功能模块;
[0207] 为所述独立视频播放功能模块定义统一接口;
[0208] 创建适配器类,所述适配器类用于将所述统一接口的方法转换为目标平台环境的视频播放API调用;
[0209] 将所述适配器类与所述自定义视图类关联,使所述自定义视图类能够通过统一接口调用目标平台环境的视频播放功能。
[0210] 在一实施例中,组件注册模块30,具体用于:
[0211] 基于兼容需求和应用场景,确定全局唯一标识符的生成策略;
[0212] 基于所述生成策略,为所述自定义视图类生成所述全局唯一标识符;
[0213] 构建注册函数,所述注册函数用于将自定义视图类与全局唯一标识符的关联关系注册到跨平台框架;
[0214] 在跨平台应用程序启动时,调用所述注册函数,将所述自定义视图类与全局唯一标识符的关联关系添加到跨平台框架的注册中心;
[0215] 在所述注册中心记录所述自定义视图类与全局唯一标识符的映射关系。
[0216] 在一实施例中,界面创建与配置模块40,具体用于:
[0217] 从所述跨平台框架的注册中心获取与所述自定义视图类对应的全局唯一标识符;
[0218] 使用跨平台框架提供的组件创建方法,初始化一个新的界面组件实例;
[0219] 根据所述全局唯一标识符,从跨平台框架中检索并实例化相应的已注册的原生视频播放组件;
[0220] 将实例化的原生视频播放组件与新创建的界面组件关联。
[0221] 在一实施例中,界面布局与通信模块50,具体用于:
[0222] 确定需要播放的视频内容,基于所述视频内容为所述界面组件分配视频源,所述视频源包括网络流地址或本地文件路径;
[0223] 根据所述视频内容的尺寸和目标设备的屏幕大小,设计用户界面布局;
[0224] 根据所述视频内容和用户界面布局要求,配置所述界面组件的尺寸、位置和样式;
[0225] 在所述界面组件中集成播放控件,所述播放控件包括播放按钮、进度条或音量控制;
[0226] 将所述界面组件添加到所述用户界面布局中。
[0227] 在一实施例中,界面布局与通信模块50,具体用于:
[0228] 为所述界面组件和所述原生视频播放组件之间设计通信协议,所述通信协议用于确定界面组件和原生视频播放组件之间交换信息的格式和规则;
[0229] 为所述界面组件和所述原生视频播放组件之间定义消息传递接口,所述消息传递接口用于界面组件发送命令和接收来自原生视频播放组件的事件;
[0230] 在所述界面组件中创建事件监听器,用于监听用户交互,并向原生视频播放组件发送相应的命令;
[0231] 在原生视频播放组件中设置状态回调机制,用于将播放状态变化通知至所述界面组件;
[0232] 为所述界面组件和所述原生视频播放组件之间配置数据通道,所述数据通道用于在界面组件和原生视频播放组件之间传递视频元数据。
[0233] 在一实施例中,控制接口模块20,具体用于:
[0234] 分析所述视频播放功能的需求,确定所需的控制命令;
[0235] 在所述自定义视图类中定义播放视频控制接口的规格,包括控制命令的名称、参数类型和返回值类型。
[0236] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的用户端通过网络连接通信。该计算机程序被处理器执行时以实现一种跨平台视频播放集成方法服务端侧的功能或步骤。
[0237] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是用户端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种跨平台视频播放集成方法用户端侧的功能或步骤
[0238] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0239] 创建自定义视图类,在所述自定视图类中封装不同平台环境下的视频播放功能;
[0240] 在所述自定义视图类中定义视频播放控制接口,所述控制接口包括播放、暂停、快进和快退操作;
[0241] 为所述自定义视图类生成全局唯一标识符,并在跨平台应用程序启动时将所述自定义视图类与所述全局唯一标识符注册到跨平台框架中,以注册原生视频播放组件;
[0242] 使用跨平台框架提供的组件创建方法,创建新的界面组件,并配置所述界面组件以引用已注册的所述原生视频播放组件;
[0243] 将所述界面组件添加到跨平台应用程序的用户界面布局中,并配置界面组件的属性,所述属性包括尺寸、位置和视频源,并建立界面组件与原生视频播放组件之间的通信机制。
[0244] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0245] 创建自定义视图类,在所述自定视图类中封装不同平台环境下的视频播放功能;
[0246] 在所述自定义视图类中定义视频播放控制接口,所述控制接口包括播放、暂停、快进和快退操作;
[0247] 为所述自定义视图类生成全局唯一标识符,并在跨平台应用程序启动时将所述自定义视图类与所述全局唯一标识符注册到跨平台框架中,以注册原生视频播放组件;
[0248] 使用跨平台框架提供的组件创建方法,创建新的界面组件,并配置所述界面组件以引用已注册的所述原生视频播放组件;
[0249] 将所述界面组件添加到跨平台应用程序的用户界面布局中,并配置界面组件的属性,所述属性包括尺寸、位置和视频源,并建立界面组件与原生视频播放组件之间的通信机制。
[0250] 需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及用户端侧的相关描述,为避免重复,这里不再一一描述。
[0251] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0252] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0253] 应当说明的是,本申请实施例中若出现了非本公司的软件工具或组件,仅仅是用于举例介绍,并不代表实际使用。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页 第1页 第2页 第3页
相关技术
播放集成相关技术
方法装置相关技术
黄炎发明人的其他相关专利技术