CN109660852A - 录制视频发布前的视频预览方法、存储介质、设备及系统 - Google Patents

录制视频发布前的视频预览方法、存储介质、设备及系统 Download PDF

Info

Publication number
CN109660852A
CN109660852A CN201710932654.1A CN201710932654A CN109660852A CN 109660852 A CN109660852 A CN 109660852A CN 201710932654 A CN201710932654 A CN 201710932654A CN 109660852 A CN109660852 A CN 109660852A
Authority
CN
China
Prior art keywords
video
media
resource
player
information
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.)
Granted
Application number
CN201710932654.1A
Other languages
English (en)
Other versions
CN109660852B (zh
Inventor
汪刚
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710932654.1A priority Critical patent/CN109660852B/zh
Publication of CN109660852A publication Critical patent/CN109660852A/zh
Application granted granted Critical
Publication of CN109660852B publication Critical patent/CN109660852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种录制视频发布前的视频预览方法、存储介质、设备及系统,涉及直播应用开发技术领域。该方法包括:当用户端录制好视频后,通过创建的媒体资源对象获取录制的视频资源并保存,形成媒体资源文件;判断当前媒体资源文件是否可以播放,若可以播放,则进行UI更新,并获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息;在更新后的UI中创建播放器;根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置,并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。本发明既能实现录制视频发布前的视频预览功能,又无需额外添加过多代码,轻量级高、实用性强。

Description

录制视频发布前的视频预览方法、存储介质、设备及系统
技术领域
本发明涉及直播应用开发技术领域,具体来讲是一种录制视频发布前的视频预览方法、存储介质、设备及系统。
背景技术
随着移动终端的快速发展,特别是手机移动终端的快速发展,直播行业越来越受欢迎,很多用户喜欢通过移动终端设备来观看直播。而随着直播热度的不断上升,直播过程中的短视频或视频分享也越来越火爆,很多视频需要发布给其他的用户使用或者观看。而在用户进行视频发布之前,通常为了提高用户体验会增加一个视频预览的功能。
但目前,常规的视频预览功能通常是借助其他的第三方框架来实现的。也就是说需要将第三方框架引入到现有系统项目中。而第三方框架通常包含几千行代码甚至上万行代码,这种为了实现一个小功能为项目额外添加几千行上万行代码的方式无疑实用性不高,并且额外添加的几千行上万行代码不但会增加项目的复杂度,使用起来“笨重”,而且还容易引入许多程序bug(漏洞)问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种录制视频发布前的视频预览方法、存储介质、设备及系统,既能实现录制视频发布前的视频预览功能,又无需额外添加过多代码,轻量级高、实用性强。
为达到以上目的,本发明采取的技术方案是:提供一种录制视频发布前的视频预览方法,该方法包括以下步骤:
S1、当用户端录制好视频后,通过创建的媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件;
S2、判断媒体资源文件是否可以播放,若是,进行UI更新,转入步骤S3;否则,结束操作;
S3、获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息;
S4、在更新后的UI中创建一个用于展示视频预览的播放器;
S5、根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。
在上述技术方案的基础上,步骤S1具体包括以下流程:
S101、当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL地址;
S102、判断返回的URL地址是否存在,若存在,创建一个媒体资源对象;
S103、利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件;并将获取到的录制的视频资源进行保存,形成媒体资源文件。
在上述技术方案的基础上,步骤S2具体包括以下流程:
S201、调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件,并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件是否可用,若当前媒体资源文件可用,转入步骤S202;否则,结束操作;
S202、在获得的主线程中进行UI更新,转入步骤S3。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述录制视频发布前的视频预览方法的步骤。
本发明还提供一种录制视频发布前的视频预览设备,包括存储器、处理器及存储在存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述录制视频发布前的视频预览方法的步骤。
本发明还提供一种录制视频发布前的视频预览系统,该系统包括设置于用户端的媒体资源文件获取模块、媒体资源文件判断模块、展示信息获取模块、播放器创建模块和预览展示模块;
所述媒体资源文件获取模块用于:当用户端录制好视频后,通过创建的媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件;
所述媒体资源文件判断模块用于:判断媒体资源文件是否可以播放,若是,进行UI更新;否则,结束操作;
所述展示信息获取模块用于:获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息;
所述播放器创建模块用于:在更新后的UI中创建一个用于展示视频预览的播放器;
所述预览展示模块用于:根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。
在上述技术方案的基础上,所述媒体资源文件获取模块获得媒体资源文件的具体流程为:
当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL地址;判断返回的URL地址是否存在,若存在,创建一个媒体资源对象;再利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件;并将获取到的录制的视频资源进行保存,形成媒体资源文件。
在上述技术方案的基础上,所述媒体资源文件判断模块判断当前媒体资源文件是否可以播放的具体流程为:
调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件,并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件是否可用,若当前媒体资源文件可用,在获得的主线程中进行UI更新;否则,结束操作。
在上述技术方案的基础上,所述展示信息获取模块获取当前媒体资源文件的展示信息的具体流程为:
定义一个视频宽高信息变量,用于存储视频的显示宽高信息;获取当前媒体资源文件中的所有的媒体帧数据,并将每个媒体帧数据用一个数组保存起来;循环遍历数组中的内容,在每一个循环周期内获取一个媒体帧数据,并判断获取的该媒体帧数据是否是视频类型;若是视屏类型,则利用该媒体帧自带的naturalSize属性获得该帧的显示宽高信息,并将该信息存储至所述视频宽高信息变量中。
在上述技术方案的基础上,所述预览展示模块根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置的具体流程为:根据展示信息中的视频宽高信息,判断是进行横屏设置还是竖屏设置;若视频宽高信息中的宽度大于高度,则进行横屏设置:将播放器的layer层的拉伸方向设置为横屏拉伸方向;并将播放器的坐标值的宽度设置为大于高度;若视频宽高信息中的宽度小于高度,则进行竖屏设置:将播放器的layer层的拉伸方向设置为竖屏拉伸方向;并将播放器的坐标值的宽度设置为小于高度。
本发明的有益效果在于:
(1)本发明中实现了一个完整的视频预览方案,且实现过程中没有使用第三方的视频预览框架和播放用库,使得代码精简,额外代码少。并且,整个预览方案没有过多的冗余判断和其他的各种兼容性设计就实现了一个短视频的预览功能,整个预览方案大约1000行代码,相较于现有方式中引入第三方的几万行的代码量,显得很轻量级,代码执行效率高,实用性强。
(2)本发明中,创建媒体资源对象之前,会先判断录制的视频的URL地址是否真实存在,若存在才会进行媒体资源对象的创建,这样可以避免因实际URL不存在而去创建媒体资源对象会导致崩溃的问题。
(3)本发明中,采用在主线程进行UI的更新,这样做的好处是可以保证界面的流畅性。特别是应用在IOS系统中时,由于IOS系统推荐在主线程更新UI,所以该方案能更好的适配IOS系统。
附图说明
图1为本发明实施例中录制视频发布前的视频预览方法的流程图;
图2为本发明实施例中录制视频发布前的视频预览设备的结构示意图;
图3为本发明实施例中录制视频发布前的视频预览系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种录制视频发布前的视频预览方法,该方法包括以下步骤:
步骤S1、当用户端录制好视频后,通过创建的一个媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件。
具体来说,在一种实施方式中,步骤S1具体包括以下流程:
步骤S101、当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL(Uniform/Universal Resource Locator的缩写,统一资源定位符)地址。
步骤S102、判断返回的URL地址是否存在,若存在,创建一个媒体资源对象。以IOS系统为例,步骤S102中创建一个媒体资源对象的实现方式可如下:使用IOS系统提供的媒体资源类AVAsset,调用用于创建媒体资源对象的类方法assetWithURL,创建一个媒体资源对象,如asset。可以理解的是,步骤S102中,会先判断URL地址是否真实存在,若存在才会进行媒体资源对象的创建,这样可以避免URL不存在而去创建媒体资源对象会导致崩溃的问题。
步骤S103、利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件(如特效声音等);并将获取到的录制的视频资源进行保存,形成媒体资源文件。
步骤S2、判断媒体资源文件是否可以播放,若是,进行UI(User Interface,用户界面)更新,转入步骤S3;否则,结束操作。可以理解的是,进行UI更新时,可根据具体需求预先设置UI更新的内容。例如,可设置为将当前UI更新为预设的视频预览提示界面或视频预览准备界面。
具体来说,在一种实施方式中,步骤S2具体包括以下流程:
步骤S201、调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件(实质是媒体资源对象,如asset),并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件(实质是媒体资源对象,如asset)是否可用,若当前媒体资源文件可用,表示当前媒体资源文件可以播放,转入步骤S202;否则,结束操作。
还是以IOS系统为例,步骤S201中用于加载媒体资源的函数可使用IOS系统提供的loadValuesAsynchronouslyForKeys方法来实现;异步方法为dispatch_async;并且回调函数获得应用程序的主线程时,可使用IOS系统提供的获得主线程的方法dispatch_get_main_queue来实现。
步骤S202、在主线程中进行UI更新,转入步骤S3。可以理解的是,在步骤S202中,采用在主线程进行UI的更新,这样做的好处是可以保证界面的流畅性,特别是应用在IOS系统中时,IOS系统推荐在主线程更新UI。
步骤S3、获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息。可以理解的是,所有的媒体帧数据包括当前媒体资源文件中所有的视频帧和音频帧。
具体来说,在一种实施方式中,步骤S3具体包括以下流程:
步骤S301、定义一个视频宽高信息变量videoSize,用于存储视频的显示宽高信息。
步骤S302、获取当前媒体资源文件中的所有的媒体帧数据,并将每个媒体帧数据用一个数组array保存起来。
步骤S303、循环遍历数组array中的内容,在每一个循环周期内获取一个媒体帧数据,并判断获取的该媒体帧数据是否是视频类型(即为视频帧);若是视屏类型,利用该媒体帧自带的naturalSize属性获得该帧的显示宽高信息,并将该信息存储至所述视频宽高信息变量videoSize中。
步骤S4、在更新后的UI中创建一个用于展示视频预览的播放器。还是以IOS系统为例,创建播放器的实现方式可如下:使用自带的轻量级的播放器的播放对象类型的AVPlayerItem,创建播放器,创建方法是playerItemWithAsset这个函数,该函数的传入参数是步骤S1中的媒体资源对象(如asset);根据这个传入参数调用播放器类AVPlayer,并调用类方法playerWithPlayerItem创建一个播放器player;再使用播放器类AVPlayerLayer调用获取播放器类layer(层)的方法playerLayerWithPlayer,去获取播放器的layer(层),从而实现播放器的创建。
步骤S5、根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。
具体来说,在一种实施方式中,步骤S5中,根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置,具体包括以下流程:
根据展示信息中的视频宽高信息,判断是进行横屏设置还是竖屏设置;
若视频宽高信息中的宽度大于高度,则进行横屏设置:将播放器的layer(层)的拉伸方向设置为横屏拉伸方向;并将播放器的坐标值的宽度设置为大于高度,而播放器的坐标值根据播放器所在屏幕的位置进行设置;例如,在IOS系统中,可将播放器的layer(层)的拉伸方向设置为IOS提供的AVLayerVideoGravityResizeAspect方向,使用这个拉伸方向是既可以保证保持视频实际的尺寸又可以保证视频的占满整个播放器;
若视频宽高信息中的宽度小于高度,则进行竖屏设置:将播放器的layer(层)的拉伸方向设置为竖屏拉伸方向;并将播放器的坐标值的宽度设置为小于高度,而播放器的坐标值根据播放器所在屏幕的位置进行设置;例如,在IOS系统中,可将播放器的layer(层)的拉伸方向设置为IOS提供的AVLayerVideoGravityResizeAspectFill方向,使用这个拉伸方向是保持视屏的比例填充播放器页面。
通过上述操作,实现了一个完整的视频预览方案,上述过程没有使用第三方的视频预览框架和播放的库,使得代码精简,额外代码少。并且,整个预览方案没有过多的冗余判断和其他的各种兼容性设计,就实现了一个短视频的预览功能,整个预览方案大约1000行代码,相较于第三方的几万行的代码量,显得很轻量级,代码执行效率高。
需要注意的是,上述步骤中的IOS系统实例操作仅仅是一个例子而已,在其他的系统中(如安卓系统中),各步骤的具体实现流程,开发人员可以根据安卓系统的实际函数、代码、接口等情况进行具体的设计和调整,在此不做限制。
对应上述的录制视频发布前的视频预览方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的录制视频发布前的视频预览方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,参见图2所示,对应上述的录制视频发布前的视频预览方法,本发明实施例还提供一种录制视频发布前的视频预览设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的录制视频发布前的视频预览方法的步骤。
参见图3所示,本发明实施例还提供一种录制视频发布前的视频预览系统,该系统包括设置于用户端的媒体资源文件获取模块、媒体资源文件判断模块、展示信息获取模块、播放器创建模块和预览展示模块。
其中,媒体资源文件获取模块用于:当用户端录制好视频后,通过创建的一个媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件。其具体实现流程包括:当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL地址;判断返回的URL地址是否存在,若存在,创建一个媒体资源对象;再利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件;并将获取到的录制的视频资源进行保存,形成媒体资源文件。
媒体资源文件判断模块用于:判断媒体资源文件是否可以播放,若是,进行UI更新;否则,结束操作。其具体实现流程包括:调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件,并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件是否可用,若当前媒体资源文件可用,在获得的主线程中进行UI更新;否则,结束操作。
展示信息获取模块用于:获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息。其具体实现流程包括:定义一个视频宽高信息变量,用于存储视频的显示宽高信息;获取当前媒体资源文件中的所有的媒体帧数据,并将每个媒体帧数据用一个数组保存起来;循环遍历数组中的内容,在每一个循环周期内获取一个媒体帧数据,并判断获取的该媒体帧数据是否是视频类型;若是视屏类型,则利用该媒体帧自带的naturalSize属性获得该帧的显示宽高信息,并将该信息存储至所述视频宽高信息变量中。
播放器创建模块用于:在更新后的UI中创建一个用于展示视频预览的播放器。
预览展示模块用于:根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。其中,所述预览展示模块根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置的具体流程为:根据展示信息中的视频宽高信息,判断是进行横屏设置还是竖屏设置;若视频宽高信息中的宽度大于高度,则进行横屏设置:将播放器的layer层的拉伸方向设置为横屏拉伸方向;并将播放器的坐标值的宽度设置为大于高度;若视频宽高信息中的宽度小于高度,则进行竖屏设置:将播放器的layer层的拉伸方向设置为竖屏拉伸方向;并将播放器的坐标值的宽度设置为小于高度。
需要说明的是:上述实施例提供的系统在实现短视频入口的控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种录制视频发布前的视频预览方法,其特征在于,该方法包括以下步骤:
S1、当用户端录制好视频后,通过创建的媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件;
S2、判断媒体资源文件是否可以播放,若是,进行UI更新,转入步骤S3;否则,结束操作;
S3、获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息;
S4、在更新后的UI中创建一个用于展示视频预览的播放器;
S5、根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。
2.如权利要求1所述的录制视频发布前的视频预览方法,其特征在于,步骤S1具体包括以下流程:
S101、当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL地址;
S102、判断返回的URL地址是否存在,若存在,创建一个媒体资源对象;
S103、利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件;并将获取到的录制的视频资源进行保存,形成媒体资源文件。
3.如权利要求1所述的录制视频发布前的视频预览方法,其特征在于,步骤S2具体包括以下流程:
S201、调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件,并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件是否可用,若当前媒体资源文件可用,转入步骤S202;否则,结束操作;
S202、在获得的主线程中进行UI更新,转入步骤S3。
4.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至3中任一项所述方法的步骤。
5.一种录制视频发布前的视频预览设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至3中任一项所述方法的步骤。
6.一种录制视频发布前的视频预览系统,其特征在于:该系统包括设置于用户端的媒体资源文件获取模块、媒体资源文件判断模块、展示信息获取模块、播放器创建模块和预览展示模块;
所述媒体资源文件获取模块用于:当用户端录制好视频后,通过创建的媒体资源对象获取相应的录制的视频资源并保存,形成媒体资源文件;
所述媒体资源文件判断模块用于:判断媒体资源文件是否可以播放,若是,进行UI更新;否则,结束操作;
所述展示信息获取模块用于:获取当前媒体资源文件的展示信息,该展示信息包括所有的媒体帧数据以及视频宽高信息;
所述播放器创建模块用于:在更新后的UI中创建一个用于展示视频预览的播放器;
所述预览展示模块用于:根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置;并在设置好的播放器中,根据展示信息中的所有的媒体帧数据进行视频预览的展示。
7.如权利要求6所述的录制视频发布前的视频预览系统,其特征在于,所述媒体资源文件获取模块获得媒体资源文件的具体流程为:
当用户端现有的视频录制模块录制好视频后,返回一个与录制的视频相对应的URL地址;判断返回的URL地址是否存在,若存在,创建一个媒体资源对象;再利用创建的媒体资源对象,根据返回的URL地址获取相应的录制的视频资源,该录制的视频资源包括录制的视频的视频源、音频源,以及相关的声音文件;并将获取到的录制的视频资源进行保存,形成媒体资源文件。
8.如权利要求6所述的录制视频发布前的视频预览系统,其特征在于,所述媒体资源文件判断模块判断当前媒体资源文件是否可以播放的具体流程为:
调用一个用于加载媒体资源的函数来判断当前媒体资源文件是否可用,所述用于加载媒体资源的函数的传入参数为当前媒体资源文件,并且该用于加载媒体资源的函数具有一个回调函数,该回调函数用于获得应用程序的主线程,并在主线程中使用异步方法判断当前媒体资源文件是否可用,若当前媒体资源文件可用,在获得的主线程中进行UI更新;否则,结束操作。
9.如权利要求6所述的录制视频发布前的视频预览系统,其特征在于,所述展示信息获取模块获取当前媒体资源文件的展示信息的具体流程为:
定义一个视频宽高信息变量,用于存储视频的显示宽高信息;获取当前媒体资源文件中的所有的媒体帧数据,并将每个媒体帧数据用一个数组保存起来;循环遍历数组中的内容,在每一个循环周期内获取一个媒体帧数据,并判断获取的该媒体帧数据是否是视频类型;若是视屏类型,则利用该媒体帧自带的naturalSize属性获得该帧的显示宽高信息,并将该信息存储至所述视频宽高信息变量中。
10.如权利要求6所述的录制视频发布前的视频预览系统,其特征在于,所述预览展示模块根据展示信息中的视频宽高信息,对创建的播放器进行横屏或竖屏的设置的具体流程为:
根据展示信息中的视频宽高信息,判断是进行横屏设置还是竖屏设置;
若视频宽高信息中的宽度大于高度,则进行横屏设置:将播放器的layer层的拉伸方向设置为横屏拉伸方向;并将播放器的坐标值的宽度设置为大于高度;
若视频宽高信息中的宽度小于高度,则进行竖屏设置:将播放器的layer层的拉伸方向设置为竖屏拉伸方向;并将播放器的坐标值的宽度设置为小于高度。
CN201710932654.1A 2017-10-10 2017-10-10 录制视频发布前的视频预览方法、存储介质、设备及系统 Active CN109660852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710932654.1A CN109660852B (zh) 2017-10-10 2017-10-10 录制视频发布前的视频预览方法、存储介质、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710932654.1A CN109660852B (zh) 2017-10-10 2017-10-10 录制视频发布前的视频预览方法、存储介质、设备及系统

Publications (2)

Publication Number Publication Date
CN109660852A true CN109660852A (zh) 2019-04-19
CN109660852B CN109660852B (zh) 2021-06-15

Family

ID=66108540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710932654.1A Active CN109660852B (zh) 2017-10-10 2017-10-10 录制视频发布前的视频预览方法、存储介质、设备及系统

Country Status (1)

Country Link
CN (1) CN109660852B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110719520A (zh) * 2019-09-29 2020-01-21 天脉聚源(杭州)传媒科技有限公司 一种视频信息提取方法、系统及装置
CN114339327A (zh) * 2021-12-29 2022-04-12 北京连屏科技有限公司 媒资运营方法及系统
CN114489875A (zh) * 2020-10-23 2022-05-13 武汉斗鱼鱼乐网络科技有限公司 一种播放器控制方法、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102316370A (zh) * 2010-06-29 2012-01-11 腾讯科技(深圳)有限公司 显示播放信息的方法和装置
CN103023870A (zh) * 2012-11-14 2013-04-03 北京小米科技有限责任公司 一种消息中数据的输出方法、装置和设备
US20140136980A1 (en) * 2011-06-28 2014-05-15 Sujeet Mate Video remixing system
US20140223482A1 (en) * 2013-02-05 2014-08-07 Redux, Inc. Video preview creation with link
CN103997659A (zh) * 2014-06-16 2014-08-20 江苏友上科技实业有限公司 一种轻量级实时高清流媒体服务器
CN105828163A (zh) * 2016-04-19 2016-08-03 乐视控股(北京)有限公司 一种视频预览方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102316370A (zh) * 2010-06-29 2012-01-11 腾讯科技(深圳)有限公司 显示播放信息的方法和装置
US20140136980A1 (en) * 2011-06-28 2014-05-15 Sujeet Mate Video remixing system
CN103023870A (zh) * 2012-11-14 2013-04-03 北京小米科技有限责任公司 一种消息中数据的输出方法、装置和设备
US20140223482A1 (en) * 2013-02-05 2014-08-07 Redux, Inc. Video preview creation with link
CN103997659A (zh) * 2014-06-16 2014-08-20 江苏友上科技实业有限公司 一种轻量级实时高清流媒体服务器
CN105828163A (zh) * 2016-04-19 2016-08-03 乐视控股(北京)有限公司 一种视频预览方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110719520A (zh) * 2019-09-29 2020-01-21 天脉聚源(杭州)传媒科技有限公司 一种视频信息提取方法、系统及装置
CN114489875A (zh) * 2020-10-23 2022-05-13 武汉斗鱼鱼乐网络科技有限公司 一种播放器控制方法、装置、存储介质及电子设备
CN114339327A (zh) * 2021-12-29 2022-04-12 北京连屏科技有限公司 媒资运营方法及系统
CN114339327B (zh) * 2021-12-29 2023-12-29 北京连屏科技有限公司 媒资运营方法及系统

Also Published As

Publication number Publication date
CN109660852B (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN112184856B (zh) 支持多图层特效及动画混合的多媒体处理装置
CN111669623B (zh) 视频特效的处理方法、装置以及电子设备
CN104244024B (zh) 一种视频封面生成方法、装置及终端
CN108681436A (zh) 画质参数调节方法、装置、终端及存储介质
CN106250104B (zh) 一种针对服务器的远程操作系统、方法及装置
KR102614263B1 (ko) 인터랙션 방법 및 장치, 전자 디바이스 및 컴퓨터 판독 가능 저장 매체
CN109660852A (zh) 录制视频发布前的视频预览方法、存储介质、设备及系统
CN108040278A (zh) 智能电视的活动页处理方法、服务器、系统及存储介质
CN104463932B (zh) 实现动画效果的方法和装置
CN106529669A (zh) 用于处理数据序列的方法和装置
CN107318038B (zh) 一种视频播放与评论同步的方法、终端设备以及存储介质
CN110618848A (zh) 一种页面显示方法、装置、设备及存储介质
CN104462160B (zh) 编辑公式的方法及系统
CN106961624B (zh) 一种视频切换方法、装置及系统
CN115510347A (zh) 演示文稿的转换方法、装置、电子设备及存储介质
CN104994429B (zh) 一种播放视频的方法及装置
CN105263032B (zh) 一种节目获取方法及装置
WO2024067159A1 (zh) 视频生成方法、装置、电子设备及存储介质
CN109766155A (zh) 一种弹框生成方法、装置及存储介质
CN109190078A (zh) 网页构建方法、装置和存储介质
CN108989898A (zh) 一种展示礼物连击动画的方法、存储介质、设备及系统
CN104768083B (zh) 一种章节内容展示的视频播放方法及装置
CN108810575A (zh) 一种发送目标视频的方法和装置
CN117376660A (zh) 字幕元素的渲染方法、装置、设备、介质及程序产品
CN107707968A (zh) 一种网页视频转gif图片的数据处理方法及装置

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