一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频播放方法、装置、电子设备和存储介质与流程

2023-09-24 15:08:31 来源:中国专利 TAG:


1.本技术涉及电子设备技术领域,尤其涉及一种视频播放方法、装置、电子设备和存储介质。


背景技术:

2.随着科学技术的高速发展,社会越来越信息化、智能化,多媒体的应用越来越广泛,并对其的发展提出更多更高的要求。例如在某些户外、展厅或其他场景,需要多个显示屏或者多个电子设备同时播放同一视频文件,实现多屏联播的效果。
3.相关技术中,可以采用先录屏再投屏的方案,比如先在屏幕a进行画面录制,然后传递到播放端进行解码播放。但是该方案中,对屏幕录a制时画面已经展示给了用户,录屏后再从屏幕b播放,多屏联播延时比较大。


技术实现要素:

4.本技术提出一种视频播放方法、装置、电子设备和存储介质。具体方案如下:
5.本技术一方面实施例提出了一种视频播放方法,包括:
6.获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳,其中,第一播放时间戳为视频中音频轨道或视频轨道的播放时间戳;
7.获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;
8.根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;
9.根据第二播放时间戳,控制视频在第二应用程序中的播放。
10.在本技术一方面实施例一种可能的实现方式中,根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳,包括:
11.确定第二系统时间戳与第一系统时间戳之间的差值;
12.根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
13.在本技术一方面实施例一种可能的实现方式中,根据第二播放时间戳,控制视频在第二应用程序中的播放,包括:
14.根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频帧;
15.根据第一视频帧的第一视频帧时间戳与第二播放时间戳之间的大小关系,对第一视频帧进行处理。
16.在本技术一方面实施例一种可能的实现方式中,根据第一视频帧的第一视频帧时间戳和第二播放时间戳之间的大小关系,对第一视频帧进行处理,包括:
17.在第一视频帧时间戳小于第二播放时间戳的情况下,将第一视频帧丢弃;
18.在第一视频帧时间戳等于第二播放时间戳的情况下,在第二应用程序的渲染视图
中显示第一视频帧;
19.在第一视频帧时间戳大于第二播放时间戳的情况下,将第一视频帧存储到待渲染队列中;
20.确定第一视频帧时间戳与第二播放时间戳间的差值;
21.在等待差值的时长之后,将第一视频帧渲染至第二应用程序的渲染视图中。
22.在本技术一方面实施例一种可能的实现方式中,在对第一视频帧进行处理之后,还包括:
23.根据视频中各视频帧的先后顺序,确定当前待处理的第二视频帧;
24.根据第二播放时间戳,获取第三播放时间戳;
25.根据第二视频帧的第二视频帧时间戳与第三播放时间戳之间的大小关系,对第二视频帧进行处理。
26.在本技术一方面实施例一种可能的实现方式中,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳,包括:
27.响应于获取到针对第一应用程序上视频的操作指令,获取第一播放时间戳和第一系统时间戳。
28.在本技术一方面实施例一种可能的实现方式中,在获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳之前,还包括:
29.响应于获取到多屏联播指令,启动第二应用程序。
30.在本技术一方面实施例一种可能的实现方式中,第一应用程序与第二应用程序安装在不同的电子设备中,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳,包括:
31.获取第一应用程序所在的电子设备发送的第一播放时间戳和第一系统时间戳。
32.本技术另一方面实施例提出了一种视频播放装置,包括:
33.第一获取模块,用于获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳,其中,第一播放时间戳为视频中音频轨道或视频轨道的播放时间戳;
34.第二获取模块,用于获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;
35.确定模块,用于根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;
36.控制模块,用于根据第二播放时间戳,控制视频在第二应用程序中的播放。
37.在本技术另一方面实施例一种可能的实现方式中,确定模块,用于:
38.确定第二系统时间戳与第一系统时间戳之间的差值;
39.根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
40.在本技术另一方面实施例一种可能的实现方式中,控制模块,用于:
41.确定单元,用于根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频帧;
42.处理单元,用于根据第一视频帧的第一视频帧时间戳与第二播放时间戳之间的大小关系,对第一视频帧进行处理。
43.在本技术另一方面实施例一种可能的实现方式中,处理单元,用于:
44.在第一视频帧时间戳小于第二播放时间戳的情况下,将第一视频帧丢弃;
45.在第一视频帧时间戳等于第二播放时间戳的情况下,在第二应用程序的渲染视图中显示第一视频帧;
46.在第一视频帧时间戳大于第二播放时间戳的情况下,将第一视频帧存储到待渲染队列中;
47.确定第一视频帧时间戳与第二播放时间戳间的差值;
48.在等待差值的时长之后,将第一视频帧渲染至第二应用程序的渲染视图中。
49.在本技术另一方面实施例一种可能的实现方式中,确定单元,还用于根据视频中各视频帧的先后顺序,确定当前待处理的第二视频帧;
50.控制模块,还包括:
51.获取单元,用于根据第二播放时间戳,获取第三播放时间戳;
52.处理单元,还用于根据第二视频帧的第二视频帧时间戳与第三播放时间戳之间的大小关系,对第二视频帧进行处理。
53.在本技术另一方面实施例一种可能的实现方式中,第一获取模块,用于:
54.响应于获取到针对第一应用程序上视频的操作指令,获取第一播放时间戳和第一系统时间戳。
55.在本技术另一方面实施例一种可能的实现方式中,还包括:
56.启动模块,用于响应于获取到多屏联播指令,启动第二应用程序。
57.在本技术另一方面实施例一种可能的实现方式中,第一应用程序与第二应用程序安装在不同的电子设备中,第一获取模块,用于:
58.获取第一应用程序所在的电子设备发送的第一播放时间戳和第一系统时间戳。
59.本技术另一方面实施例提出了一种电子设备,包括处理器和存储器;
60.其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如上述一方面实施例所述的方法。
61.本技术另一方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述一方面实施例所述的方法。
62.本技术另一方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时上述一方面实施例所述方法的步骤。
63.本技术实施例的视频播放方法、装置、电子设备和存储介质,通过获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳;获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;根据第二播放时间戳,控制视频在第二应用程序中的播放。由此,通过根据第一应用程序的播放时间戳,确定第二应用程序的播放时间戳,并根据第二播放时间戳,控制视频在第二应用程序中的播放,从而利用同一个音频轨道的播放时间戳或同一个视频轨道的播放时间戳进行多屏联播,减少了多屏联播延时。
64.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
65.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
66.图1为本技术实施例提供的一种视频播放方法的流程示意图;
67.图2为本技术实施例提供的另一种视频播放方法的流程示意图;
68.图3为本技术实施例提供的另一种视频播放方法的流程示意图;
69.图4为本技术实施例提供的另一种视频播放方法的流程示意图;
70.图5为本技术实施例提供的一种同系统联播的示例;
71.图6为本技术实施例提供的一种视频播放装置的结构示意图;
72.图7为本技术实施例提供的一种用于视频播放的电子设备的框图。
具体实施方式
73.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
74.下面参考附图描述本技术实施例的视频播放方法、装置、电子设备和存储介质。
75.图1为本技术实施例提供的一种视频播放方法的流程示意图。
76.本技术实施例的视频播放方法,可以由本技术实施例提供的视频播放装置执行,该装置可以配置于电子设备中,以根据第一应用程序中视频的播放时间戳,确定第二应用程序中视频的播放时间戳,减小了多屏联播延时。
77.如图1所示,该视频播放方法包括:
78.步骤101,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳。
79.其中,第一应用程序可以是视频的提供方,第一应用程序可以通过播放器播放视频,还可以启动第二应用程序,以使第二应用程序与第一应用程序同步播放视频。
80.本技术中,第一应用程序和第二应用程序可以安装在同一电子设备中,可以安装在不同电子设备中。
81.在第一应用程序播放视频的过程中,可以获取第一应用程序中视频的第一播放时间戳和对应的第一系统时间戳。其中,第一播放时间戳可以是视频中音频轨道的播放时间戳,也可以是视频轨道的播放时间戳。若视频中包含音频轨道和视频轨道,第一播放时间戳可以为音频轨道的播放时间戳,若视频中只有视频轨道,那么第一播放时间戳为视频轨道的播放时间戳。
82.本技术中,第一系统时间戳是与第一播放时间戳对应的系统时间。比如,在系统时间18:30:30:040应用程序a中视频v1的音频轨道播放到第1分钟,这里18:30:30:040是第一系统时间戳,第1分钟即00:00:01:000是第一播放时间戳。
83.以视频中包含音频轨道,第一应用程序和第二应用程序安装在同一电子设备为例,第一应用程序使用mediaplayer播放视频,系统可以将视频渲染输出端的渲染视图传递到底层nuplayer,在第一应用程序对应的nuplayer的解码器中,获取视频的格式信息,比如视频高度和视频宽度,通知到第二应用程序的自定义播放器,进行渲染视图的大小调整。另外,在nuplayer的渲染器中,获取当前音频轨道的播放时间戳和当前系统时间戳,同步到第
二应用程序。
84.可以理解的是,若某时刻用户对第一应用程序进行操作,比如暂停、拖动进度条等,那么系统可以获取到相应的操作指令,并将进行操作指令时的系统时间戳和播放时间戳同步给第二应用程序,以及根据操作指令对第二应用程序中的视频进行控制。
85.步骤102,获取第二系统时间戳。
86.在获取第一播放时间戳和第一系统时间戳后,可以将第一播放时间戳、第一系统时间戳等同步到第二应用程序。本技术中,第二系统时间戳可以是第二应用程序获取到第一播放时间戳时的系统时间。
87.步骤103,根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳。
88.由于第一播放时间戳或视频中的视频帧传递到第二应用程序需要一定的时间,因此可以基于第一应用程序中视频的第一播放时间戳和对应的第一系统时间戳,以及第二系统时间戳,确定第二应用程序在第二系统时间戳视频应当的播放时间戳。
89.若第一播放时间戳为音频轨道的播放时间戳,那么可以基于第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中在第二系统时间戳视频的音频轨道应当的播放时间戳,即第二播放时间戳。
90.若第一播放时间戳为第一应用程序中视频的视频帧的播放时间戳,可以基于视频轨道的播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序在第二系统时间戳视频的视频轨道应当的播放时间戳,即第二播放时间戳。
91.本技术中,可以第一应用程序播放视频时,向第二应用程序发送视频帧。比如,第一应用程序中视频播到1分钟时,可能解码到了1分钟20秒,把20秒内的视频帧同步到第二应用程序,第二应用程序会有20秒的视频帧。
92.步骤104,根据第二播放时间戳,控制视频在第二应用程序中的播放。
93.本技术中,可以对视频进行解码,以获取视频中的各视频帧以及每个视频帧的视频帧时间戳,并将视频帧及对应的视频帧时间戳复制给第二应用程序。由此,第二应用程序可以获取视频中的各视频帧及每个视频帧对应的视频帧时间戳。其中,视频帧时间戳可以理解为视频帧在视频轨道中的时间戳。
94.在获取第二播放时间戳之后,可以基于第二播放时间戳、视频帧的时间帧时间戳等,确定第二播放时间戳应当显示的视频帧。由于系统时间戳在自增长,第二应用程序中视频的播放时间戳也随着系统时间戳进行自增长,因此可以确定第二播放时间戳自增长后的播放时间戳,并确定该播放时间戳应当播放的视频帧,以使视频在第二应用程序和第一应用程序中进行同步播放。
95.若视频中包含音频轨道,第一播放时间戳为音频轨道的播放时间戳,那么可以通过使用同一音频轨道的时间戳,使得视频在第一应用程序和第二应用程序中同步播放,减少了多屏联播的延时。
96.若视频中只包含视频轨道,第一播放时间戳为视频轨道的播放时间戳,那么可以通过使用同一视频轨道的时间戳,使得视频在第一应用程序和第二应用程序中同步播放,减少了多屏联播的延时。
97.本技术实施例的视频播放方法,可以用于车辆中,也可以手机、掌声电脑等之中,
实现在同一电子设备的不同屏幕同步播放视频。比如,以车辆为例,中控屏与副驾驶对应的屏幕可以认为属于同一电子设备,若驾驶员和副驾驶上的乘客想同步观看视频,可以根据中控中某应用程序播放视频的进度,控制另一应用程序在相应的时间播放相应的时间帧,以使中控屏和副驾驶对应的屏幕同步播放视频。
98.本技术实施例中,通过获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳;获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;根据第二播放时间戳,控制视频在第二应用程序中的播放。由此,通过根据第一应用程序的播放时间戳,确定第二应用程序的播放时间戳,并根据第二播放时间戳,控制视频在第二应用程序中的播放,从而利用同一个音频轨道的播放时间戳或同一个视频轨道的播放时间戳进行多屏联播,减少了多屏联播延时。
99.图2为本技术实施例提供的另一种视频播放方法的流程示意图。
100.如图2所示,该视频播放方法包括:
101.步骤201,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳。
102.步骤202,获取第二系统时间戳。
103.本技术中,步骤201-步骤202与上述实施例记载的内容类似,故在此不再赘述。
104.步骤203,确定第二系统时间戳与第一系统时间戳之间的差值。
105.本技术中,可以计算第二系统时间戳与第一系统时间戳之间的差值,其中,该差值可以理解为向第二应用程序发送第一播放时间戳或视频帧所用的时间。
106.步骤204,根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
107.本技术中,可以将第一播放时间戳与第二系统时间戳与第一系统时间戳之间的差值的和值,作为第二应用程序应用当的播放时间戳。
108.假设,第一系统时间戳为arealtimeus,第一播放时间戳为audiomediatimeus,第二系统时间戳brealtimeus,那么第二播放时间戳bvideomediatimeus的计算公式可以为:bvideomediatimeus=audiomediatimeus brealtimeus-arealtimeus。
109.比如,arealtimeus=17:38:01:784,audiomediatimeus=00:00:00:000,brealtimeus=17:38:01:824,那么第二播放时间戳bvideomediatimeus=00:00:00:000 17:38:01:824-17:38:01:784=0:00:00:040。
110.步骤205,根据第二播放时间戳,控制视频在第二应用程序中的播放。
111.本技术中,步骤205与上述实施例中记载的内容类似,故在此不再赘述。
112.本技术实施例中,在根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳时,可以确定第二系统时间戳与第一系统时间戳之间的差值,并根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。由此,可以确定出第二应用程序在获取到第一播放时间戳时的系统时间戳和第二应用程序应当的播放时间戳,从而考虑了数据传输所用的时间,提高了第二播放时间戳的准确性。
113.图3为本技术实施例提供的另一种视频播放方法的流程示意图。
114.如图3所示,该视频播放方法包括:
115.步骤301,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳。
116.步骤302,获取第二系统时间戳。
117.步骤303,确定第二系统时间戳与第一系统时间戳之间的差值。
118.步骤304,根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
119.本技术中,步骤301-步骤304与上述实施例中记载的内容类似,故在此不再赘述。
120.步骤305,根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频帧。
121.由于视频中各视频帧的播放先后顺序不同,可以按照先后顺序依次处理每个视频帧,因此可以根据前一个处理的视频帧,将相邻的下一个视频帧作为视频中当前待处理的视频帧,即第一视频帧。
122.比如,视频中各视频帧的标识与处理顺序一致,前一个处理的视频帧标识为id=1,那么当前待处理的第一视频帧标识为id=2。
123.步骤306,根据第一视频帧的第一视频帧时间戳与第二播放时间戳之间的大小关系,对第一视频帧进行处理。
124.由于第一应用程序和第二应用程序同步播放视频可以理解为在同一系统时间戳,视频的播放时间戳相同,另外每个视频帧具有视频帧时间戳,那么可以根据第一视频帧的第一视频帧时间戳和第二播放时间戳之间的大小关系,确定在第二播放时间戳是否渲染第一视频帧。
125.若第一视频帧时间戳小于第二播放时间戳,说明第一视频帧应当播放过了,可以将第一视频帧丢弃。若第一视频帧时间戳等于第二播放时间戳,说明应当在第二播放时间戳显示第一视频帧,那么将第一视频帧渲染到渲染视图上,以在第二应用程序的渲染视图中显示第一视频帧。若第一视频帧时间戳大于第二播放时间戳,说明还未到第一视频帧的播放时间,那么可以将第一视频帧存储到待渲染队列中,并确定第一视频帧时间戳与第二播放时间戳间的差值,在等待差值的时长之后,将第一视频帧渲染至第二应用程序的渲染视图中。由此,可以根据第一视频帧时间戳与第二播放时间戳间的大小关系,对第一视频帧进行相应的处理。
126.本技术实施例中,在根据第二播放时间戳,控制视频在第二应用程序中的播放时,可以根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频帧;根据第一视频帧的第一视频帧时间戳和第二播放时间戳之间的大小关系,对第一视频帧进行处理。由此,通过根据第一视频帧时间戳与第二播放时间戳之间的大小关系,确定第二应用程序是否在第二播放时间戳渲染第一视频帧,提高了第二应用程序播放视频的准确性,减少了多屏联播的延时。
127.图4为本技术实施例提供的另一种视频播放方法的流程示意图。
128.如图4所示,该视频播放方法包括:
129.步骤401,获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳。
130.步骤402,获取第二系统时间戳。
131.步骤403,确定第二系统时间戳与第一系统时间戳之间的差值。
132.步骤404,根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
133.步骤405,根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频
帧。
134.步骤406,根据第一视频帧的第一视频帧时间戳和第二播放时间戳之间的差值,对第一视频帧进行处理。
135.本技术中,步骤401-步骤407与上述实施例记载的内容类似,故在此不再赘述。
136.步骤407,根据视频中各视频帧的先后顺序,确定当前待处理的第二视频帧。
137.在对第一视频帧处理后,可以根据视频中各视频帧播放的先后顺序,确定当前待处理的第二视频帧。
138.比如,与第二播放时间戳比对的是标识id=2的视频帧的视频帧时间戳,在处理完id=2的视频帧后,可以将id=3的视频帧时间戳,作为当前待处理的视频帧。
139.步骤408,根据第二播放时间戳,获取第三播放时间戳。
140.在基于第一播放时间戳确定第二播放时间戳后,第二应用程序中视频的播放时间戳可以与系统时间保持自增长,从而可以通过调用相应的函数直接获取第三播放时间戳。
141.比如,在系统时间戳t1时,播放时间戳为m1,并去获取播放时间戳,返回播放时间戳时系统时间戳为t2,返回的播放时间戳为m1 t2-t1。这里可以认为是第二应用程序在系统时间戳t2,播放时间戳m1 t2-t1时,接收到第二视频帧。
142.步骤409,根据第二视频帧的第二视频帧时间戳与第三播放时间戳之间的大小关系,对第二视频帧进行处理。
143.在确定第二视频帧和第三播放时间戳之后,可以将第三播放时间戳与第二视频帧时间戳进行比较,根据大小关系对第二视频帧进行处理。
144.若第二视频帧时间戳小于第三播放时间戳,说明第二视频帧应当播放过了,可以将第二视频帧丢弃。若第二视频帧时间戳等于第三播放时间戳,说明应当在第三播放时间戳显示第二视频帧,那么将第二视频帧渲染到渲染视图上,以在第二应用程序的渲染视图中显示第二视频帧。若第二视频帧时间戳大于第三播放时间戳,说明还未到第二视频帧的播放时间,那么可以将第二视频帧存储到待渲染队列中,并确定第二视频帧时间戳与第三播放时间戳间的差值,在等待差值的时长之后,将第二视频帧渲染至第二应用程序的渲染视图中。由此,可以根据第二视频帧时间戳与第三播放时间戳间的大小关系,对第二视频帧进行相应的处理。
145.在对第二视频帧处理完成后,可以对第三视频帧进行处理,直至获取到第一应用程序中视频的播放时间戳和系统时间戳,根据第一应用程序中视频的播放时间戳和系统时间戳,确定第二应用程序应当的播放时间戳,之后第二应用程序中视频的播放时间戳自增长,以对相应的视频帧进行处理。
146.以第一应用程序与第二应用程序安装在同一电子设备,视频包含音频轨道为例,结合图5进行说明。其中,为了便于计算,假设每个视频帧的播放时长为20ms。
147.图5中,应用程序a在开始播放时,进行第一次音频时间同步,将当前的系统时间戳17:38:01:784和音频轨道的播放时间戳00:00:00:000发送给应用程序b,b在系统时间戳为17:38:01:824时接收,根据公式计算应用应程序b应当的播放时间戳bvideomediatimeus=audiomediatimeus brealtimeus

arealtimeus,得到应当的播放时间戳为00:00:00:040,也就是说,应用程序b应当在17:38:01:824播放到视频的00:00:00:040位置。这里的音频时间同步是指将a的系统时间戳和播放时间戳发送给应用程序b,以计算出应用程序b的播放
时间戳。
148.在第一次音频时间同步后,应用程序a和应用程序b的视频的播放时间戳与系统时间戳保持自增长关系,如图5中所示,应用程序a:系统时间戳由17:38:01:784更新为17:38:01:786时,播放时间戳由00:00:00:000变00:00:00:002;应用程序b:系统时间戳由17:38:01:827更新为17:38:01:830,相应的播放时间戳由00:00:00:043变为00:00:00:046。
149.应用程序a在17:38:01:784时开始播放id=0的视频帧,在17:38:01:804开始播放id=1的视频帧,在17:38:01:824开始播放id=2的视频帧,17:38:01:844开始播放id=3的视频帧。
150.应用程序b在17:38:01:824时,应当的播放时间戳为00:00:00:040,这时还未收到视频帧,因此应当的播放时间戳与视频帧时间戳不比对;在17:38:01:827时,应当的播放时间戳为00:00:00:043,将00:00:00:043大于id=0的视频帧的视频帧时间戳00:00:00:000,说明已经过了id=0的视频帧的播放时间,因此将id=0的视频帧丢弃;在17:38:01:830时,应当的播放时间戳00:00:00:046大于id=1的视频帧的视频帧时间戳00:00:00:020,将id=1的视频帧丢弃;17:38:01:832时,应当的播放时间戳00:00:00:048大于id=2的视频帧的视频帧时间戳00:00:00:040,将id=2的视频帧丢弃;在17:38:01:837时,应当的播放时间戳00:00:00:053小于id=3的视频帧的视频帧时间戳00:00:00:060,将id=3的视频帧暂存到队列中等待播放;在17:38:01:837时,应当的播放时间戳00:00:00:056小于id=4的视频帧的视频帧时间戳00:00:00:080,将id=4的视频帧暂存到队列中等待播放,这时队列中存储有id=3和id=4的视频帧。在17:38:01:844时,播放时间戳为00:00:00:060与id=3的视频帧的视频帧的播放时间戳相等,则将id=3的视频帧立即渲染到渲染视图上,并从队列中移除,这时应用程序a也播放到id=3的视频帧,应用程序a与应用程序b同步完成。
151.第二次音频同步与第三词音频同步的方式,与第一次音频同步的方式类似,故在此不再赘述。
152.其中,音频同步的时机,也即发送音频轨道的播放时间戳的时机,可以是应用程序a中视频的播放状态发生变化时,也可以是每隔预设时长进行音频同步。
153.比如,应用程序a播放一首歌的视频,应用程序a在播放到某个字时,音频卡了一下,但是应用程序b还是正常播放,以后b就比a总是快一些。为了避免这种情况,可以每隔预设时长同步一次时间,比如每5秒同步一次,这样b比a快,在下一次的5秒到达时,音频轨道的播放时间戳相同。
154.需要说明是,同步的间隔时长可以根据实际需要确定,本技术对此不作限定。
155.本技术实施例中,在对第一视频帧进行处理之后,还可以根据视频中各视频帧的先后顺序,确定当前待处理的第二视频帧;根据第二播放时间戳,获取第三播放时间戳;根据第二视频帧的第二视频帧时间戳与第三播放时间戳之间的大小关系,对第二视频帧进行处理。由此,在进行一次音频同步操作后,按照视频帧的先后顺序,依次将每个视频帧的视频帧时间戳和对应的播放时间戳进行比对,以对视频帧进行处理,从而到达第二应用程序与第一应用程序多屏联播的目的。
156.在本技术的一个实施例中,为了提高了处理效率,可以在第一应用程序中视频的播放状态发生变化时,获取视频的播放时间戳和系统时间戳,并同步给第二应用程序。
157.本技术中,在用户对第一应用程序播放的视频进行操作时,比如播放、暂停、拖动
进度条时,由此可以在获取到针对第一应用程序上视频的操作指令时,可以获取第一播放时间戳和第一系统时间戳,并将第一播放时间戳、第一系统时间戳等同步给第二应用程序。
158.其中,操作指令可以包括但不限于播放指令、暂停指令、拖动进度条指令等。
159.本技术实施例中,可以响应于获取到针对第一应用程序上所述视频的操作指令,获取第一播放时间戳和第一系统时间戳,从而当第一应用程序中视频的播放状态发生变化时,获取第一播放时间戳和第一系统时间戳,将第一应用程序中视频的播放时间戳同步给第二应用程序,可以减少计算量,提高处理效率。
160.在本技术的一个实施例中,用户可以根据需要确定是否进行多屏联播,在第一应用程序开始播放视频或者播放视频的过程中,用户可以触发显示屏上的多屏联播控件,电子设备可以获取多屏联播指令,响应于获取到多屏联播指令,启动第二应用程序。其中,多屏联播控件可以在第一应用程序所在电子设备的显示屏中悬浮显示。
161.当用户触发多屏联播控件时,可以默认启动第二应用程序,用户也可以从提供的多个应用程序中,选择第二应用程序。
162.或者,也可以根据用户输入的语音,启动第二应用程序。比如,用户语音输入“启动应用程序b进行联播”,那么电子设备在获取到语音指令后,可以启动应用程序b。
163.本技术中,若第一应用程序与第二应用程序安装在同一电子设备,那么用户在触发多屏联播控件时,电子设备可以直接获取到多屏联播指令。若第一应用程序和第二应用程序安装在不同电子设备时,假设第一应用程序安装在第一电子设备,第二应用程序安装在第二电子设备,用户可以触发第一电子设备的显示屏中的多屏联播控件,这时第一电子设备可以获取到多屏联播指令,并将该多屏联播指令发送给第二电子设备,第二电子设备可以响应于获取到多屏联播指令,启动第二应用程序。
164.本技术实施例中,在获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳之前,还可以响应于获取到多屏联播指令,启动第二应用程序。从而,用户可以根据实际需要进行多屏联播,满足了用户需求。
165.在本技术的一个实施例中,第一应用程序与第二应用程序可以安装在不同的电子设备中,第一应用程序在播放视频的过程中,其所在的电子设备可以获取视频的第一播放时间戳及对应的第一系统时间戳,并将第一播放时间戳和第一系统时间戳发送给第二应用程序所在的电子设备,以实现跨系统的多屏联播。
166.为了进一步说明上述实施例,下面以同系统联播和跨系统联播对上述实施例进行说明。其中,同系统是指第一应用程序与第二应用程序安装在同一电子设备中,跨系统是指第一应用程序与第二应用程序安装在不同电子设备中。
167.一、同系统联播:
168.1、视频源提供方第一应用程序使用mediaplayer播放视频。第二应用程序收到系统对mediaplayer的视频解析后的通知,进行自定义播放器的初始化,如播放内容的标题和时长,控制按钮的进度条的初始化。系统将视频渲染输出端的渲染视图传递到底层nuplayer。
169.2、在第一应用程序对应的nuplayer的解码器中,获取到视频的格式信息,如视频高度和视频宽度,通知到第二应用程序的自定义播放器,进行渲染视图的大小调整。
170.3、在nuplayer的渲染器中,获取当前音频轨的播放时间戳audiomediatimeus和当
前系统时间戳arealtimeus,同步到第二应用程序。
171.4、在nuplayer中将解码后的视频帧复制一份传递到第二应用程序,并根据当前系统时间戳brealtimeus进行计算,当前第二应用程序应当播放的视频帧的时间戳应当如下:bvideomediatimeus=audiomediatimeus brealtimeus

arealtimeus。
172.5、比对第二应用程序收到的视频帧时间戳bvideoframetimeus与bvideomediatimeus。
173.若bvideoframetimeus《bvideomediatimeus,则丢弃该视频帧;
174.若bvideoframetimeus=bvideomediatimeus,则立即渲染到;
175.若bvideoframetimeus=bvideomediatimeus,则立即渲染到b端的渲染视图上,展示给用户;
176.若bvideoframetimeus》bvideomediatimeus,则将该视频帧暂存到待渲染队列中,并计算出waitus=bvideomediatimeus-bvideoframetimeus的时间,等待waitus后渲染到第二应用程序的渲染视图上。
177.6、第二应用程序可以根据系统展示模块提供的应用程序接口获取垂直同步的周期和状态,通过nuplayer的mediaclock进行垂直同步周期更新,以优化渲染带来的时间影响。
178.二、跨系统联播:
179.1、第一应用程序所在的电子设备a将视频直接发送到第二应用程序所在的电子设备c,电子设备c对视频进行解码,以获取视频帧及对应的视频帧时间戳。
180.2、电子设备a将视频的音频轨道播放进度时间戳aaudiomediatimeus和系统时间戳arealtimeus,不断同步到电子设备c中。
181.3、获取当前电子设备c的系统时间crealtimeus,此时间为解码后的时间,因此该时间包含编解码和网络传递耗时,视频播放进度计算公式为:
182.cvideomediatimeus=aaudiomediatimeus crealtimeus

arealtimeus
183.4、与同系统联播类似,使用cvideomediatimeus和cvideoframetimeus的比较作为渲染的时机判定。
184.5、由于跨系统所以两个电子设备的系统时间不是同一个物理时钟,可以进行多次握手响应,来计算出两个系统时间的误差,作为计算渲染时间条件之一,来减少系统间的误差。
185.举例来讲,第一应用程序安装在电子设备e1,第二应用程序安装在电子设备e2中,若电子设备e1的系统时间比电子设备e2的系统时间快了10毫秒,比如,第一应用程序在09:00:00播放到视频的1分钟,那么第二应用程序应当在08:59:59时播放到视频的1分钟位置。电子设备e2在计算第二应用程序应当的播放时间戳时,应该在第一应用程序的播放时间戳加上第二应用程序的系统时间戳减去第一应用程序的系统时间戳的基础上,再加上系统误差10毫秒。比如,电子设备e1将系统时间戳10:00:00:000的播放时间戳00:00:00:000发送给第二应用程序,第二应用程序在10:00:00:030接收到,那么第二应用程序应当的播放时间戳为00:00:00:000 10:00:00:030-10:00:00:000 00:00:00:010=00:00:00:040。
186.可以理解的是,如果电子设备e1的系统时间比电子设备e2的系统时间慢,电子设备e2在计算第二应用程序应当的播放时间戳时,应该在第一应用程序的播放时间戳加上第
二应用程序的系统时间戳减去第一应用程序的系统时间戳的基础上,再减去系统误差。
187.相关技术中,基于视频源的多源同时播放,需要视频源提供方进行适配,对外暴露自身资源的统一资源定位器(uniform resource locator,url),应用通过对url进行在线缓存进行分发多屏幕播放。
188.而本技术通过利用同一音频轨道的时间戳来解决联播观感延时问题,并通过对原生播放器进行扩展,来达到无须视频源提供方适配的目的。
189.本技术实施例的视频播放方法,可以减少应用程序的适配,可以将同步工作放到系统内,是平台性方案,可对应多个不同的应用程序。另外,对于同步时间的计算,通过使用两个系统时间戳,以减少传递、编解码等耗时的影响,减少了多屏联播延时,提升用户多屏联播观感。
190.本技术实施例中,第二应用程序可以是多个,多个第二应用程序可以安装在同一电子设备,也可以安装在不同电子设备,第二应用程序可以与第一应用程序安装在同一电子设备,也可以安装在不同电子设备。
191.比如,应用程序a1和a2安装在电子设备m中,应用程序a3安装在电子设备n中,应用程序a1播放视频,应用程序a2和a3可以与a1多屏联播。可见,a1和a2属于同系统多屏联播,a1和a3属于跨系统多屏联播。其中,控制逻辑可以如下:
192.可以利用应用程序a1的原生mediasession框架提供的mediacontroller进行源端控制,截取应用程序a1的nuplayer的notify方法来获取应用程序a1中视频的暂停、播放、拖动进度条等命令的完成时间,来控制应用程序a2和a3渲染的开始和暂停,以保证画面的一致性。
193.对于切源操作,如视频切换、清晰度切换等,应用程序a2和a3需要将渲染视图画面清空,等待应用程序a1中视频初始化,然后应用程序a2和a3进行同系统联播和跨系统联播的初始化。
194.为了实现上述实施例,本技术实施例还提出一种视频播放装置的结构示意图。图6为本技术实施例提供的一种视频播放装置的结构示意图。
195.如图6所示,该视频播放装置600包括:
196.第一获取模块610,用于获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳,其中,第一播放时间戳为视频中音频轨道或视频轨道的播放时间戳;
197.第二获取模块620,用于获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;
198.确定模块630,用于根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;
199.控制模块640,用于根据第二播放时间戳,控制视频在第二应用程序中的播放。
200.在本技术实施例一种可能的实现方式中,确定模块630,用于:
201.确定第二系统时间戳与第一系统时间戳之间的差值;
202.根据差值与第一播放时间戳之间的和值,确定第二播放时间戳。
203.在本技术实施例一种可能的实现方式中,控制模块640,用于:
204.确定单元,用于根据视频中各视频帧的先后顺序,确定视频中当前待处理的第一视频帧;
205.处理单元,用于根据第一视频帧的第一视频帧时间戳与第二播放时间戳之间的大小关系,对第一视频帧进行处理。
206.在本技术实施例一种可能的实现方式中,处理单元,用于:
207.在第一视频帧时间戳小于第二播放时间戳的情况下,将第一视频帧丢弃;
208.在第一视频帧时间戳等于第二播放时间戳的情况下,在第二应用程序的渲染视图中显示第一视频帧;
209.在第一视频帧时间戳大于第二播放时间戳的情况下,将第一视频帧存储到待渲染队列中;
210.确定第一视频帧时间戳与第二播放时间戳间的差值;
211.在等待差值的时长之后,将第一视频帧渲染至第二应用程序的渲染视图中。
212.在本技术实施例一种可能的实现方式中,确定单元,还用于根据视频中各视频帧的先后顺序,确定当前待处理的第二视频帧;
213.控制模块640,还包括:
214.获取单元,用于根据第二播放时间戳,获取第三播放时间戳;
215.处理单元,还用于根据第二视频帧的第二视频帧时间戳与第三播放时间戳之间的大小关系,对第二视频帧进行处理。
216.在本技术实施例一种可能的实现方式中,第一获取模块610,用于:
217.响应于获取到针对第一应用程序上视频的操作指令,获取第一播放时间戳和第一系统时间戳。
218.在本技术实施例一种可能的实现方式中,该装置还可以包括:
219.启动模块,用于响应于获取到多屏联播指令,启动第二应用程序。
220.在本技术实施例一种可能的实现方式中,第一应用程序与第二应用程序安装在不同的电子设备中,第一获取模块610,用于:
221.获取第一应用程序所在的电子设备发送的第一播放时间戳和第一系统时间戳。需要说明的是,上述对视频播放方法实施例的解释说明,也适用于该实施例的视频播放装置,故在此不再赘述。
222.本技术实施例中,通过获取第一应用程序中视频的第一播放时间戳及对应的第一系统时间戳;获取第二系统时间戳,其中,第二系统时间戳是第二应用程序获取到第一播放时间戳时的系统时间;根据第一播放时间戳、第一系统时间戳和第二系统时间戳,确定第二应用程序中视频在第二系统时间戳的第二播放时间戳;根据第二播放时间戳,控制视频在第二应用程序中的播放。由此,通过根据第一应用程序的播放时间戳,确定第二应用程序的播放时间戳,并根据第二播放时间戳,控制视频在第二应用程序中的播放,从而利用同一个音频轨道的播放时间戳或同一个视频轨道的播放时间戳进行多屏联播,减少了多屏联播延时。
223.图7为本技术实施例提供的一种用于视频播放的电子设备的框图。
224.如图7所示,该电子设备700包括:
225.存储器710及处理器720,连接不同组件(包括存储器710和处理器720)的总线730,存储器710存储有计算机程序,当处理器720执行所述程序时实现本技术实施例所述的视频播放方法。
226.总线730表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
227.电子设备700典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备700访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
228.存储器710还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)740和/或高速缓存存储器750。电子设备700可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统760可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线730相连。存储器710可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本技术各实施例的功能。
229.具有一组(至少一个)程序模块770的程序/实用工具780,可以存储在例如存储器710中,这样的程序模块770包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块770通常执行本技术所描述的实施例中的功能和/或方法。
230.电子设备700也可以与一个或多个外部设备790(例如键盘、指向设备、显示器791等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口792进行。并且,电子设备700还可以通过网络适配器793与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器793通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
231.处理器720通过运行存储在存储器710中的程序,从而执行各种功能应用以及数据处理。
232.需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本技术实施例的视频播放方法的解释说明,此处不再赘述。
233.为了实现上述实施例,本技术实施例还提出一种电子设备,包括处理器和存储器;
234.其中,处理器通过读取存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如上述实施例所述的视频播放方法。
235.为了实现上述实施例,本技术实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的视频播放方法。
236.为了实现上述实施例,本技术实施例还提出一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时上述实施例所述的视频播放方法的步骤。
237.在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
238.尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表