图片播放方法、装置、终端及存储介质与流程

文档序号:21695366发布日期:2020-07-31 22:32阅读:245来源:国知局
图片播放方法、装置、终端及存储介质与流程

本申请实施例涉及计算机技术领域,特别涉及一种图片播放方法、装置、终端及存储介质。



背景技术:

随着终端相册功能的不断更新和发展,用户存储和查看图片更加便利,同时对图片查看方式的要求逐渐提高,自动播放相册图片可以方便用户快速浏览相册。

相关技术中,终端获取指定的图片集合,根据预设的单次缓存数量分批缓存图片集合并申请图片播放内存,当一批图片播放完成时重新申请下一批图片的播放内存,直至图片集合中的全部图片播放完毕。

然而,采用相关技术中的图片播放方法,需要多次申请图片播放内存,图片播放效率低,终端功耗较大,且容易产生内存碎片,造成资源浪费。



技术实现要素:

本申请实施例提供了一种图片播放方法、装置、终端及存储介质。所述技术方案如下:

一方面,本申请实施例提供了一种图片播放方法,所述方法包括:

接收图片播放指令,所述图片播放指令用于指示播放n张目标图片,n为大于等于1的整数;

根据n张所述目标图片的合并尺寸请求图片播放内存,所述合并尺寸为通过合并n张所述目标图片得到的目标合成图片的尺寸,所述图片播放内存用于缓存所述目标合成图片;

将压缩合并n张所述目标图片得到的所述目标合成图片写入所述图片播放内存中;

通过播放器加载所述目标合成图片,并播放n张所述目标图片。

在一种可能的实施方式中,所述根据n张所述目标图片的合并尺寸请求图片播放内存之前,所述方法还包括:

获取所述播放器的当前显示状态,所述当前显示状态包括横屏显示状态和竖屏显示状态;

根据所述当前显示状态确定图片合成方式,所述图片合成方式包括横向合成和竖向合成;

根据所述图片合成方式和n张所述目标图片的尺寸确定所述合并尺寸。

在一种可能的实施方式中,所述图片合成方式为所述横向合成,所述根据所述图片合成方式和n张所述目标图片的尺寸确定所述合并尺寸,包括:

根据所述播放器在所述横屏显示状态下的显示高度确定合并高度,所述合并高度小于所述显示高度;

响应于所述目标图片的高度大于所述合并高度,压缩所述目标图片的高度至所述合并高度,并等比例压缩所述目标图片的宽度;

根据所述合并高度和合并宽度确定所述合并尺寸,所述合并宽度为n张所述目标图片经过压缩处理后的宽度之和;

所述将压缩合并n张所述目标图片得到的所述目标合成图片写入所述图片播放内存中,包括:

将压缩后的第i+1张目标图片的左边缘与压缩后的第i张目标图片右边缘拼接,得到所述目标合成图片,i为大于0小于n的整数;

将所述目标合成图片写入所述图片播放内存中。

在一种可能的实施方式中,所述图片合成方式为所述竖向合成,所述根据所述图片合成方式和n张所述目标图片的尺寸确定所述合并尺寸,包括:

根据所述播放器在所述竖屏显示状态下的显示宽度确定合并宽度,所述合并宽度小于所述显示宽度;

响应于所述目标图片的宽度大于所述合并宽度,压缩所述目标图片的宽度至所述合并宽度,并等比例压缩所述目标图片的高度;

根据所述合并宽度和合并高度确定所述合并尺寸,所述合并高度为n张所述目标图片经过压缩处理后的高度之和;

所述将压缩合并n张所述目标图片得到的所述目标合成图片写入所述图片播放内存中,包括:

将压缩后的第i+1张目标图片的上边缘与压缩后的第i张目标图片下边缘拼接,得到所述目标合成图片,i为大于0小于n的整数;

将所述目标合成图片写入所述图片播放内存中。

在一种可能的实施方式中,所述播放器采用第一播放方式,所述第一播放方式指匀速滑动播放n张所述目标图片;

所述播放n张所述目标图片,包括:

根据所述合并尺寸确定滑动窗口的窗口尺寸,所述窗口尺寸包括窗口宽度和窗口高度,所述合并尺寸包括合并宽度和合并高度,其中,当所述当前显示状态为所述横屏显示状态时,所述窗口高度等于所述合并高度,所述窗口宽度为预设窗口宽度;当所述当前显示状态为所述竖屏显示状态时,所述窗口宽度等于所述合并宽度,所述窗口高度为预设窗口高度;

根据滑动速度在所述目标合成图片上滑动所述滑动窗口,其中,当所述当前显示状态为所述横屏显示状态时,所述滑动速度根据所述合并宽度和图片播放时长确定;当所述当前显示状态为所述竖屏显示状态时,所述滑动速度根据所述合并高度和所述图片播放时长确定;

根据所述合并尺寸和所述播放器的显示区域的尺寸,在显示区域显示所述滑动窗口内的图像。

在一种可能的实施方式中,所述播放器采用第二播放方式,所述第二播放方式指每隔预定时长更新所述目标图片;

所述播放n张所述目标图片,包括:

根据所述合并尺寸确定滑动窗口的窗口尺寸,所述窗口尺寸包括窗口宽度和窗口高度,所述合并尺寸包括合并宽度和合并高度,其中,当所述当前显示状态为所述横屏显示状态时,所述窗口宽度等于压缩合并后下一目标图片的宽度且所述窗口高度等于所述合并高度,当所述当前显示状态为所述竖屏显示状态时,所述窗口宽度等于所述合并宽度且所述窗口高度等于压缩合并后所述下一目标图片的高度;

每隔所述预定时长,根据目标滑动距离在所述目标合成图片上滑动所述滑动窗口,其中,当所述当前显示状态为所述横屏显示状态时,所述目标滑动距离等于压缩合并后当前目标图片的宽度;当所述当前显示状态为所述竖屏显示状态时,所述目标滑动距离等于压缩合并后所述当前目标图片的高度;

根据压缩合并后所述目标图片的尺寸和所述播放器的显示区域的尺寸,在显示区域显示所述滑动窗口内的图像。

在一种可能的实施方式中,所述播放n张所述目标图片之后,所述方法还包括:

接收查找seek指令,所述seek指令用于指示从目标时刻开始播放所述目标图片;

根据图片播放时长和所述目标时刻,确定起始坐标,所述起始坐标用于指示滑动窗口在所述目标合成图片上的起始滑动位置;

从所述起始坐标开始,播放所述目标图片。

另一方面,本申请实施例提供了一种图片播放装置,所述装置包括:

第一接收模块,用于接收图片播放指令,所述图片播放指令用于指示播放n张目标图片,n为大于等于1的整数;

请求模块,用于根据n张所述目标图片的合并尺寸请求图片播放内存,所述合并尺寸为通过合并n张所述目标图片得到的目标合成图片的尺寸,所述图片播放内存用于缓存所述目标合成图片;

写入模块,用于将压缩合并n张所述目标图片得到的所述目标合成图片写入所述图片播放内存中;

第一播放模块,用于通过播放器加载所述目标合成图片,并播放n张所述目标图片。

另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现上述方面所述的图片播放方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现上述方面所述的图片播放方法。

本申请实施例提供的技术方案的有益效果至少包括:

本申请实施例中,当终端接收到图片播放指令时,先根据目标图片的合并尺寸申请图片播放内存,再将通过压缩合并目标图片得到的目标合成图片写入图片播放内存,并通过播放器加载目标合成图片,从而实现自动播放目标图片;将多张目标图片合并为一张目标合成图片,可以一次缓存完全部目标图片,并且不需要多次申请内存和清除当前资源,提高了图片播放效率,避免了由于内存碎片导致的资源浪费。

附图说明

图1是根据本申请一示例性实施例示出的图片播放方法的流程图;

图2是根据本申请另一示例性实施例示出的图片播放方法的流程图;

图3是根据本申请一示例性实施例示出的图片合成方式的示意图;

图4是根据本申请另一示例性实施例示出的图片合成方式的示意图;

图5是根据本申请一示例性实施例示出的滑动窗口的示意图;

图6是根据本申请另一示例性实施例示出的滑动窗口的示意图;

图7是根据本申请另一示例性实施例示出的图片播放方法的流程图;

图8是根据本申请一示例性实施例示出的图片播放装置的结构框图;

图9是根据本申请另一示例性实施例示出的图片播放装置的结构框图;

图10是根据本申请一示例性实施例示出的终端的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

相关技术中,终端接收图片播放指令后,根据预先设置的图片加载数量,分批次加载目标图片,终端在当前批次的目标图片播放完成后,根据下一批次目标图片的尺寸申请图片播放内存,并清空当前批次的目标图片所占用的内存,直至所有的目标图片播放完毕。

然而,相关技术中分批次缓存和播放目标图片的方法,需要多次进行请求内存和写入并加载图片的操作,图片播放效率低,容易产生内存碎片,从而造成资源浪费,并且当终端接收到查找(seek)操作时,若seek操作对应的起始图片不属于当前批次的目标图片,还需要重新加载目标图片。

为了解决相关技术中存在的问题,本申请实施例提供了一种图片播放方法。本申请各个实施例提供的图片播放方法用于具有图片存储和图片处理功能的终端,该终端可以是智能手机、平板电脑、电子书阅读器、个人便携式计算机等。通过本申请实施例提供的图片播放方法,终端可以将所有目标图片压缩合并为一张目标合成图片,并播放该目标合成图片,从而减少图片缓存和加载的次数,提高图片播放效率,并避免由于多次申请内存而造成的内存碎片。

请参考图1,其示出了本申请的一个实施例示出的图片播放方法的流程图。本实施例以图片播放方法用于具有图片存储和图片处理功能的终端为例进行说明,该方法包括:

步骤101,接收图片播放指令,图片播放指令用于指示播放n张目标图片,n为大于等于1的整数。

在一种可能的实施方式中,图片播放方法应用于相册类应用程序或图片处理类应用程序时,该应用程序具有图片播放功能,用户通过开启图片播放功能,可以使终端自动播放多张目标图片。例如,用户通过触发图片播放控件并选择n张目标图片,使终端接收图片播放指令。

示意性的,用户开启相关应用程序后,可以选择播放某一相册内的全部图片,或者选择播放多个相册内的指定图片。

步骤102,根据n张目标图片的合并尺寸请求图片播放内存,合并尺寸为通过合并n张目标图片得到的目标合成图片的尺寸,图片播放内存用于缓存目标合成图片。

若终端直接根据目标图片的尺寸申请图片播放内存,则可能由于图片缓存数量的限制而需要多次申请内存,每次申请新的图片播放内存前还需要清空当前图片资源,并且多次申请图片播放内存还可能产生内存碎片,导致资源浪费。因此,为了减少图片缓存的时长,提高图片播放效率,在一种可能的实施方式中,终端首先确定n张目标图片的合并尺寸,并根据该合并尺寸请求图片播放内存,后续终端只需利用该图片播放内存进行图片播放,不需要再进行请求内存和清空图片资源的操作。

步骤103,将压缩合并n张目标图片得到的目标合成图片写入图片播放内存中。

在一种可能的实施方式中,为了减小播放图片所需要的图片播放内存,终端在合并目标图片之前,对目标图片进行压缩处理,再将压缩处理后的目标图片合并,得到目标合成图片,并写入图片播放内存。

步骤104,通过播放器加载目标合成图片,并播放n张目标图片。

在一种可能的实施方式中,终端成功将目标合并图片写入图片播放内存后,通过播放器加载目标合成图片,并利用播放器的显示区域播放目标图片。

示意性的,用户可以根据需要设置图片播放方式、图片播放时长等,终端根据用户的设置播放目标图片。

综上所述,本申请实施例中,当终端接收到图片播放指令时,先根据目标图片的合并尺寸申请图片播放内存,再将通过压缩合并目标图片得到的目标合成图片写入图片播放内存,并通过播放器加载目标合成图片,从而实现自动播放目标图片;将多张目标图片合并为一张目标合成图片,可以一次缓存完全部目标图片,并且不需要多次申请内存和清除当前资源,提高了图片播放效率,避免了由于内存碎片导致的资源浪费。

请参考图2,其示出了本申请的另一个实施例示出的图片播放方法的流程图。本实施例以图片播放方法用于具有图片存储和图片处理功能的终端为例进行说明,该方法包括:

步骤201,接收图片播放指令,图片播放指令用于指示播放n张目标图片,n为大于等于1的整数。

步骤201的实施方式可以参考上述步骤101,本申请实施例在此不再赘述。

步骤202,获取播放器的当前显示状态,当前显示状态包括横屏显示状态和竖屏显示状态。

由于目标图片的数量通常较多且图片尺寸不同,因此存在多种图片合成方式,为了确定出适合播放器当前显示状态的图片合成方式和图片播放方式,在一种可能的实施方式中,终端在合成和播放目标图片之前,首先获取播放器的当前显示状态。

示意性的,终端内安装有重力传感器和角速度传感器中的至少一种,并根据传感器数据获取播放器的当前显示状态为横屏显示状态或竖屏显示状态。

步骤203,根据当前显示状态确定图片合成方式,图片合成方式包括横向合成和竖向合成。

在一种可能的实施方式中,由于横屏显示状态下播放器的显示区域通常为显示宽度大于显示高度,因此采用横向合成的方式,竖屏显示状态下播放器的显示区域通常为显示高度大于显示宽度,因此采用竖向合成的方式。其中,横向合成是指将目标图片左右横向拼接,竖向合成是指将目标图片上下竖向拼接。

可选的,终端还可以根据播放器当前显示状态下的显示宽高比确定图片合成方式,若当前显示状态下播放器的显示宽高比大于1,则确定图片合成方式为横向合成,若当前显示状态下播放器的显示宽高比小于1,则确定图片合成方式为竖向合成。

步骤204,根据图片合成方式和n张目标图片的尺寸确定合并尺寸。

由于终端需要根据目标合成图片的尺寸申请图片播放内存,因此首先确定合并尺寸,而合并尺寸包括合并宽度和合并高度,与图片合成方式和目标图片的尺寸有关。

在一种可能的实施方式中,图片合成方式为横向合成,则步骤204包括如下步骤一至三:

步骤一,根据播放器在横屏显示状态下的显示高度确定合并高度,合并高度小于显示高度。

由于播放器处于横屏显示状态时,图片合成方式为横向合成,因此合并宽度由目标图片的数量和尺寸决定,而合并高度由播放器在横屏显示状态下的显示高度确定。

在一种可能的实施方式中,终端根据播放器在横屏显示状态下的显示高度确定合并高度,为了减小需要的图片播放内存,提高图片缓存速度,合并高度小于显示高度。

示意性的,终端预先设置横屏显示状态下的合并高度为显示高度的1/2,例如,播放器显示区域在横屏显示状态下的宽高为1280*960,则确定合并高度为480。

可选地,横屏显示状态下的合并高度还可以是播放器显示高度的1/3、3/4等其他高度,本申请实施例对此不作限定。

步骤二,响应于目标图片的高度大于合并高度,压缩目标图片的高度至合并高度,并等比例压缩目标图片的宽度。

在一种可能的实施方式中,当目标图片的高度大于合并高度时,等比例压缩该目标图片的高度和宽度,使压缩后的目标图片的高度与合并高度相等。

示意性的,一张目标图片的宽高为1280*960,合并高度为480,则将该目标图片的高度压缩为480,宽度压缩为640。

可选地,若目标图片的高度小于等于合并高度,则不对该目标图片做压缩处理,例如,一张目标图片的宽高为1280*480,合并高度为480,则不压缩该目标图片。

步骤三,根据合并高度和合并宽度确定合并尺寸,合并宽度为n张目标图片经过压缩处理后的宽度之和。

在一种可能的实施方式中,终端确定出n张目标图片压缩处理后的尺寸,并得到n张目标图片的合并宽度,由于图片合成方式为横向合成,因此合并宽度为n张目标图片经过压缩处理后的宽度之和。

示意性的,目标图片有3张,其宽高分别为1280*960、300*300和200*800,终端根据播放器在当前显示状态下的显示高度确定出合并高度为480,则终端对3张目标图片进行压缩处理后,其宽高为640*480、300*300、120*480,即合并高度为480,合并宽度为1060,从而确定出合并尺寸为1060*480。

可选地,若n张目标图片的高度都小于预设的合并高度,则直接合并目标图片,不作压缩处理,目标合成图片的实际高度为高度最大的目标图片的高度。

在一种可能的实施方式中,图片合成方式为竖向合成,则上述步骤一至三替换为如下步骤四至六:

步骤四,根据播放器在竖屏显示状态下的显示宽度确定合并宽度,合并宽度小于显示宽度。

由于播放器处于竖屏显示状态时,图片合成方式为竖向合成,因此合并高度由目标图片的数量和尺寸决定,而合并宽度由播放器在竖屏显示状态下的显示宽度确定。

在一种可能的实施方式中,终端根据播放器在竖屏显示状态下的显示宽度确定合并宽度,为了减小需要的图片播放内存,提高图片缓存速度,合并宽度小于显示宽度。

示意性的,终端预先设置竖屏显示状态下的合并宽度为显示宽度的1/2,例如,播放器显示区域在竖屏显示状态下的宽高为960*1280,则确定合并宽度为480。

可选地,竖屏显示状态下的合并宽度还可以是播放器显示宽度的1/3、3/4等其他宽度,本申请实施例对此不作限定。

步骤五,响应于目标图片的宽度大于合并宽度,压缩目标图片的宽度至合并宽度,并等比例压缩目标图片的高度。

在一种可能的实施方式中,当目标图片的宽度大于合并宽度时,等比例压缩该目标图片的高度和宽度,使压缩后的目标图片的宽度与合并宽度相等。

示意性的,一张目标图片的宽高为1280*960,合并宽度为480,则将该目标图片的宽度压缩为480,高度压缩为360。

可选地,若目标图片的宽度小于等于合并宽度,则不对该目标图片做压缩处理,例如,一张目标图片的宽高为480*1280,合并宽度为480,则不压缩该目标图片。

步骤六,根据合并宽度和合并高度确定合并尺寸,合并高度为n张目标图片经过压缩处理后的高度之和。

在一种可能的实施方式中,终端确定出n张目标图片压缩处理后的尺寸,并得到n张目标图片的合并高度,由于图片合成方式为竖向合成,因此合并高度为n张目标图片经过压缩处理后的高度之和。

示意性的,目标图片有3张,其宽高分别为1280*960、300*300和200*800,终端根据播放器在当前显示状态下的显示宽度确定出合并宽度为480,则终端对3张目标图片进行压缩处理后,其宽高分别为480*360、300*300和200*800,即合并宽度为480,合并高度为1460,从而确定出合并尺寸为480*1460。

可选地,若n张目标图片的宽度都小于预设的合并宽度,则直接合并目标图片,不作压缩处理,目标合成图片的实际宽度为宽度最大的目标图片的宽度。

步骤205,根据n张目标图片的合并尺寸请求图片播放内存,合并尺寸为通过合并n张目标图片得到的目标合成图片的尺寸,图片播放内存用于缓存目标合成图片。

在一种可能的实施方式中,应用程序根据目标图片的合并尺寸和像素值等信息确定出需要占用的图片播放内存的大小,并请求图片播放内存。

步骤206,将压缩合并n张目标图片得到的目标合成图片写入图片播放内存中。

当该应用程序成功分配到图片播放内存后,终端根据合并尺寸和图片合成方式压缩合并n张目标图片,得到目标合成图片,并将目标合成图片写入该图片播放内存中。

在一种可能的实施方式中,图片合成方式为横向合成,则步骤206包括如下步骤一和二:

步骤一,将压缩后的第i+1张目标图片的左边缘与压缩后的第i张目标图片右边缘拼接,得到目标合成图片,i为大于0小于n的整数。

在一种可能的实施方式中,目标图片在高度上居中对齐,即n张目标图片的水平对称轴位于同一水平线上,除第一张目标图片以外,各个目标图片的左边缘与前一张目标图片的右边缘拼接。

示意性的,请参考图3,其示出了3张目标图片横向合成得到的目标合成图片301的示意图。目标合成图片301由图片a、图片b和图片c组成,3张目标图片原本的宽高分别为1280*960、300*300和200*800,且播放器在横屏显示状态下对应的合并高度为480,则压缩处理后其宽高分别为640*480、300*300、120*480,目标合成图片301的合并尺寸为1060*480。

可选地,目标图片还可以下边缘水平对齐或上边缘水平对齐,本申请实施例对此不作限定。

步骤二,将目标合成图片写入图片播放内存中。

示意性的,终端将合并尺寸为1060*480的目标合成图片301写入预先申请的图片播放内存中,并对目标合成图片301进行渲染。

在一种可能的实施方式中,图片合成方式为竖向合成,则上述步骤一和二替换为如下步骤三和四:

步骤三,将压缩后的第i+1张目标图片的上边缘与压缩后的第i张目标图片下边缘拼接,得到目标合成图片,i为大于0小于n的整数。

在一种可能的实施方式中,目标图片在宽度上居中对齐,即n张目标图片的竖直对称轴位于同一直线上,除第一张目标图片以外,各个目标图片的上边缘与前一张目标图片的下边缘拼接。

示意性的,请参考图4,其示出了3张目标图片竖向合成得到的目标合成图片401的示意图。目标合成图片401由图片a、图片b和图片c组成,3张目标图片原本的宽高分别为1280*960、300*300和200*800,且播放器在竖屏显示状态下对应的合并宽度为480,则压缩处理后3张目标图片的宽高分别为480*360、300*300和200*800,目标合成图片401的合并尺寸为480*1460。

可选地,目标图片还可以下边缘水平对齐或上边缘水平对齐,本申请实施例对此不作限定。

步骤四,将目标合成图片写入图片播放内存中。

示意性的,终端将合并尺寸为480*1460的目标合成图片401写入预先申请的图片播放内存中,并对目标合成图片401进行渲染。

步骤207,通过播放器加载目标合成图片,并播放n张目标图片。

由于目标合成图片的尺寸通常较大,其合并宽度远大于播放器的显示宽度,或其合并高度远大于播放器的显示高度,因此终端无法直接完整显示目标合成图片。在一种可能的实施方式中,终端利用播放器播放目标图片之前,设置一个滑动窗口,通过该滑动窗口在目标额合成图片上滑动,并实时显示该滑动窗口内的图像,从而完成目标图片的播放。

可选地,用户可以选择图片播放方式,终端根据目标合成图片的合并尺寸和图片合成方式,设置滑动窗口。

在一种可能的实施方式中,播放器采用第一播放方式,其中第一播放方式指匀速滑动播放n张目标图片,则步骤207包括如下步骤一至三:

步骤一,根据合并尺寸确定滑动窗口的窗口尺寸,窗口尺寸包括窗口宽度和窗口高度,合并尺寸包括合并宽度和合并高度,其中,当当前显示状态为横屏显示状态时,窗口高度等于合并高度,窗口宽度为预设窗口宽度;当当前显示状态为竖屏显示状态时,窗口宽度等于合并宽度,窗口高度为预设窗口高度。

示意性的,请参考图5,其示出了一种横屏显示状态下的滑动窗口示意图,当播放器在横屏显示状态下播放目标图片时,滑动窗口501的窗口高度等于目标合成图片301的合并高度480,滑动窗口501的窗口宽度为预设宽度。

可选地,终端根据播放器在当前显示状态下的显示区域的尺寸和窗口高度确定窗口宽度,使滑动窗口的宽高比与播放器显示区域的宽高比相同。例如,播放器在横屏显示状态下显示区域的宽高比为1280*960,滑动窗口501的窗口高度为480,则可以确定滑动窗口501的窗口宽度为640。

示意性的,请参考图6,其示出了一种竖屏显示状态下的滑动窗口示意图,当播放器在竖屏显示状态下播放目标图片时,滑动窗口601的窗口宽度等于目标合成图片401的合并宽度480,滑动窗口601的窗口宽度为预设宽度。

可选地,终端根据播放器在当前显示状态下的显示区域的尺寸和窗口宽度确定窗口高度,使滑动窗口的宽高比与播放器显示区域的宽高比相同。例如,播放器在竖屏显示状态下显示区域的宽高比为960*1280,滑动窗口601的窗口宽为480,则可以确定滑动窗口601的窗口高度为640。

步骤二,根据滑动速度在目标合成图片上滑动滑动窗口,其中,当当前显示状态为横屏显示状态时,滑动速度根据合并宽度和图片播放时长确定;当当前显示状态为竖屏显示状态时,滑动速度根据合并高度和图片播放时长确定。

在一种可能的实施方式中,用户可以设置图片播放时长,则当前显示状态为横屏显示状态时,滑动速度等于合并宽度除以图片播放时长,当前显示状态为竖屏显示状态时,滑动速度等于合并高度除以图片播放时长。

示意性的,如图5所示,播放器横向播放目标图片,目标合成图片301的合并宽度为1060,用户设置图片播放时长为5秒,则滑动窗口501的滑动速度为212每秒。

示意性的,如图6所示,播放器竖向播放目标图片,目标合成图片401的合并高度为1460,用户设置图片播放时长为5秒,则滑动窗口601的滑动速度为292每秒。

可选地,终端可以预先设置默认的滑动速度,并根据默认的滑动速度滑动该滑动窗口。

步骤三,根据合并尺寸和播放器的显示区域的尺寸,在显示区域显示滑动窗口内的图像。

在一种可能的实施方式中,由于目标合成图片为目标图片压缩后合并组成的图片,因此其合并宽度小于播放器的显示宽度,或合并高度小于播放器的显示高度,终端根据合并尺寸和播放器的显示区域的尺寸,适当拉伸滑动窗口内的图像并在显示区域内显示。

示意性的,播放器在横屏显示状态下显示区域的宽高为1280*960,而目标合成图片的合并尺寸为1060*480,则终端拉伸滑动窗口内的图像,使该图像的高度为960,并等比例拉伸该图像的宽度至1280。

在一种可能的实施方式中,播放器采用第二播放方式,其中第二播放方式指每隔预定时长更新目标图片,则上述步骤一至三替换为如下步骤四至六:

步骤四,根据合并尺寸确定滑动窗口的窗口尺寸,窗口尺寸包括窗口宽度和窗口高度,合并尺寸包括合并宽度和合并高度,其中,当当前显示状态为横屏显示状态时,窗口宽度等于压缩合并后下一目标图片的宽度且窗口高度等于合并高度,当当前显示状态为竖屏显示状态时,窗口宽度等于合并宽度且窗口高度等于压缩合并后下一目标图片的高度。

示意性的,请参考图3,播放器处于横屏显示状态,则滑动窗口的窗口高度等于目标合成图片301的合并高度480,滑动窗口的窗口宽度由压缩后的目标图片的宽度决定,即当滑动窗口移动至图片a时,窗口宽度为640,当滑动窗口移动至图片b时,窗口宽度为300。滑动窗口在进行滑动前,将窗口宽度调整为压缩合并后下一目标图片的宽度。

示意性的,请参考图4,播放器处于竖屏显示状态,则滑动窗口的窗口宽度等于目标合成图片401的合并宽度480,滑动窗口的窗口高度由压缩后的目标图片的高度决定,即当滑动窗口移动至图片a时,窗口高度为360,当滑动窗口移动至图片b时,窗口高度为300。

步骤五,每隔预定时长,根据目标滑动距离在目标合成图片上滑动滑动窗口,其中,当当前显示状态为横屏显示状态时,目标滑动距离等于压缩合并后当前目标图片的宽度;当当前显示状态为竖屏显示状态时,目标滑动距离等于压缩合并后当前目标图片的高度。

在一种可能的实施方式中,用户可以设置每张目标图片的显示时长,终端将该显示时长设置为滑动窗口进行滑动操作的预设时长。例如,用户设置每秒钟显示一张目标图片,则终端每隔1秒钟根据目标滑动距离在目标合成图片上滑动一次滑动窗口。

示意性的,请参考图3,播放器处于横屏显示状态,当滑动窗口从图片a滑动至图片b时,目标滑动距离为图片a压缩合并后的宽度,即640,当滑动窗口从图片b滑动至图片c时,目标滑动距离为图片b压缩合并后的宽度,即300。

示意性的,请参考图4,播放器处于竖屏显示状态,当滑动窗口从图片a滑动至图片b时,目标滑动距离为图片a压缩合并后的高度,即360,当滑动窗口从图片b滑动至图片c时,目标滑动距离为图片b压缩合并后的高度,即300。

可选的,用户还可以设置图片播放时长,终端根据图片播放时长和目标图片的数量确定预设时长。

步骤六,根据压缩合并后目标图片的尺寸和播放器的显示区域的尺寸,在显示区域显示滑动窗口内的图像。

在一种可能的实施方式中,由于目标合成图片为目标图片压缩后合并组成的图片,可能存在目标图片的宽度小于播放器的显示宽度,且目标图片的高度小于播放器的显示高度的情况,终端根据压缩合并后目标图片的尺寸和播放器的显示区域的尺寸,适当拉伸滑动窗口内的图像并在显示区域内显示。

示意性的,播放器在横屏显示状态下显示区域的宽高为1280*960,而目标图片压缩合并后的尺寸为1060*480,则终端拉伸滑动窗口内的图像,使该图像的高度为960,并等比例拉伸该图像的宽度至1280。

本申请实施例中,终端可以根据播放器的当前显示状态确定图片合成方式,使目标合成图片的尺寸适配于播放器的显示区域,并且根据用户选择的图片播放方式和图片合成方式设置滑动窗口的窗口尺寸和滑动方式,从而使播放器显示区域所显示的图像既能达到用户需要的播放效果,也能使图像适配于播放器的当前显示状态。

可选的,用户在图片播放过程中可以通过seek指令选择任意的时刻,使播放器从该时刻开始播放目标图片。在一种可能的实施方式中,在图2的基础上,请参考图7,图片播放方法还包括如下步骤208至步骤210:

步骤208,接收seek指令,seek指令用于指示从目标时刻开始播放目标图片。

在一种可能的实施方式中,用户可以通过seek指令使播放器从目标时刻开始播放目标图片。例如,播放器播放目标图片时,显示界面中存在播放进度条,用户可以滑动或点击播放进度条至任意时刻,当终端检测到该播放进度条的滑动操作时,获取目标时刻并接收seek指令。

可选地,用户还可以通过拖动目标合成图片,使播放器根据该拖动操作从目标位置开始播放目标图片。

步骤209,根据图片播放时长和目标时刻,确定起始坐标,起始坐标用于指示滑动窗口在目标合成图片上的起始滑动位置。

在一种可能的实施方式中,播放器采用第一播放方式,匀速滑动播放n张目标图片,且播放器处于横屏显示状态,则起始坐标/目标合成图片的合并宽度=目标时刻/图片播放时长;播放器采用第一播放方式,匀速滑动播放n张目标图片,且播放器处于竖屏显示状态,则起始坐标/目标合成图片的合并高度=目标时刻/图片播放时长。

示意性的,播放器处于横屏显示状态,目标合成图片的合并宽度为1060,图片播放时长为10秒,seek指令的目标时刻为3秒,则起始坐标为目标合成图片宽度方向上,距目标合并图片左边缘318处。

在一种可能的实施方式中,播放器采用第二播放方式,每隔预定时长更新目标图片,且播放器处于横屏显示状态,则终端首先根据图片播放时长、目标时刻和目标图片的数量n确定起始图片,再根据起始图片之前的所有目标图片压缩后的宽度确定起始坐标;播放器采用第二播放方式,每隔预定时长更新目标图片,且播放器处于竖屏显示状态,则终端首先根据图片播放时长、目标时刻和目标图片的数量n确定起始图片,再根据起始图片之前的所有目标图片压缩后的高度确定起始坐标。

示意性的,播放器处于横屏显示状态,组成目标合并图片的3张目标图片压缩后的宽高分别为640*480、300*300、120*480,图片播放时长为10秒,seek指令的目标时刻为9秒,则起始图片为第3张目标图片,则起始坐标为目标合成图片宽度方向上,距目标合并图片左边缘940处。

步骤210,从起始坐标开始,播放目标图片。

终端确定出起始坐标后,将滑动窗口的左边缘滑动至该起始坐标,并按照图片播放方式开始播放目标图片,其中,若播放器采用第二播放方式,终端还需要先根据起始图片压缩后的尺寸调整滑动窗口的窗口尺寸。

本申请实施例中,用户可以通过seek指令从图片播放时长中选择任意的目标时刻,使播放器从目标时刻开始播放目标图片,终端根据seek指令和图片播放方式,将目标时刻转换为滑动窗口的起始坐标,直接将滑动窗口滑动至起始坐标,开始播放目标图片。

请参考图8,其示出了本申请一个示例性实施例提供的图片播放装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:

第一接收模块801,用于接收图片播放指令,所述图片播放指令用于指示播放n张目标图片,n为大于等于1的整数;

请求模块802,用于根据n张所述目标图片的合并尺寸请求图片播放内存,所述合并尺寸为通过合并n张所述目标图片得到的目标合成图片的尺寸,所述图片播放内存用于缓存所述目标合成图片;

写入模块803,用于将压缩合并n张所述目标图片得到的所述目标合成图片写入所述图片播放内存中;

第一播放模块804,用于通过播放器加载所述目标合成图片,并播放n张所述目标图片。

可选的,如图9所示,所述装置还包括:

获取模块805,用于获取所述播放器的当前显示状态,所述当前显示状态包括横屏显示状态和竖屏显示状态;

第一确定模块806,用于根据所述当前显示状态确定图片合成方式,所述图片合成方式包括横向合成和竖向合成;

第二确定模块807,用于根据所述图片合成方式和n张所述目标图片的尺寸确定所述合并尺寸。

可选的,所述图片合成方式为所述横向合成,所述第二确定模块807,包括:

第一确定单元,用于根据所述播放器在所述横屏显示状态下的显示高度确定合并高度,所述合并高度小于所述显示高度;

第一压缩单元,用于响应于所述目标图片的高度大于所述合并高度,压缩所述目标图片的高度至所述合并高度,并等比例压缩所述目标图片的宽度;

第二确定单元,用于根据所述合并高度和合并宽度确定所述合并尺寸,所述合并宽度为n张所述目标图片经过压缩处理后的宽度之和;

所述写入模块803,包括:

第一拼接单元,用于将压缩后的第i+1张目标图片的左边缘与压缩后的第i张目标图片右边缘拼接,得到所述目标合成图片,i为大于0小于n的整数;

第一写入单元,用于将所述目标合成图片写入所述图片播放内存中。

可选的,所述图片合成方式为所述竖向合成,所述第二确定模块807,包括:

第三确定单元,用于根据所述播放器在所述竖屏显示状态下的显示宽度确定合并宽度,所述合并宽度小于所述显示宽度;

第二压缩单元,用于响应于所述目标图片的宽度大于所述合并宽度,压缩所述目标图片的宽度至所述合并宽度,并等比例压缩所述目标图片的高度;

第四确定单元,用于根据所述合并宽度和合并高度确定所述合并尺寸,所述合并高度为n张所述目标图片经过压缩处理后的高度之和;

所述写入模块803,包括:

第二拼接单元,用于将压缩后的第i+1张目标图片的上边缘与压缩后的第i张目标图片下边缘拼接,得到所述目标合成图片,i为大于0小于n的整数;

第二写入单元,用于将所述目标合成图片写入所述图片播放内存中。

可选的,所述播放器采用第一播放方式,所述第一播放方式指匀速滑动播放n张所述目标图片;

所述第一播放模块804,包括:

第五确定单元,用于根据所述合并尺寸确定滑动窗口的窗口尺寸,所述窗口尺寸包括窗口宽度和窗口高度,所述合并尺寸包括合并宽度和合并高度,其中,当所述当前显示状态为所述横屏显示状态时,所述窗口高度等于所述合并高度,所述窗口宽度为预设窗口宽度;当所述当前显示状态为所述竖屏显示状态时,所述窗口宽度等于所述合并宽度,所述窗口高度为预设窗口高度;

第一滑动单元,用于根据滑动速度在所述目标合成图片上滑动所述滑动窗口,其中,当所述当前显示状态为所述横屏显示状态时,所述滑动速度根据所述合并宽度和图片播放时长确定;当所述当前显示状态为所述竖屏显示状态时,所述滑动速度根据所述合并高度和所述图片播放时长确定;

第一显示单元,用于根据所述合并尺寸和所述播放器的显示区域的尺寸,在显示区域显示所述滑动窗口内的图像。

可选的,所述播放器采用第二播放方式,所述第二播放方式指每隔预定时长更新所述目标图片;

所述第一播放模块804,包括:

第六确定单元,用于根据所述合并尺寸确定滑动窗口的窗口尺寸,所述窗口尺寸包括窗口宽度和窗口高度,所述合并尺寸包括合并宽度和合并高度,其中,当所述当前显示状态为所述横屏显示状态时,所述窗口宽度等于压缩合并后下一目标图片的宽度且所述窗口高度等于所述合并高度,当所述当前显示状态为所述竖屏显示状态时,所述窗口宽度等于所述合并宽度且所述窗口高度等于压缩合并后所述下一目标图片的高度;

第二滑动单元,用于每隔所述预定时长,根据目标滑动距离在所述目标合成图片上滑动所述滑动窗口,其中,当所述当前显示状态为所述横屏显示状态时,所述目标滑动距离等于压缩合并后当前目标图片的宽度;当所述当前显示状态为所述竖屏显示状态时,所述目标滑动距离等于压缩合并后所述当前目标图片的高度;

第二显示单元,用于根据压缩合并后所述目标图片的尺寸和所述播放器的显示区域的尺寸,在显示区域显示所述滑动窗口内的图像。

可选的,所述装置还包括:

第二接收模块808,用于接收seek指令,所述seek指令用于指示从目标时刻开始播放所述目标图片;

第三确定模块809,用于根据图片播放时长和所述目标时刻,确定起始坐标,所述起始坐标用于指示滑动窗口在所述目标合成图片上的起始滑动位置;

第二播放模块810,用于从所述起始坐标开始,播放所述目标图片。

请参考图9,其示出了本申请一个示例性实施例提供的终端900的结构方框图。该终端900可以是智能手机、平板电脑、电子书、便携式个人计算机等安装并运行有应用程序的电子设备。本申请中的终端900可以包括一个或多个如下部件:处理器920、存储器910和屏幕930。

处理器920可以包括一个或者多个处理核心。处理器920利用各种接口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器910内的指令、程序、代码集或指令集,以及调用存储在存储器910内的数据,执行终端900的各种功能和处理数据。可选地,处理器920可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器920可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责屏幕930所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器920中,单独通过一块通信芯片进行实现。

存储器910可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory,rom)。可选地,该存储器910包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器910可用于存储指令、程序、代码、代码集或指令集。存储器910可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。存储数据区还可以存储终端900在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

屏幕930可以为电容式触摸显示屏,该电容式触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端900的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。

除此之外,本领域技术人员可以理解,上述附图所示出的终端900的结构并不构成对终端900的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端900中还包括射频电路、拍摄组件、传感器、音频电路、wi-fi组件、电源、蓝牙组件等部件,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的图片播放方法。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的图片播放方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1