一种多媒体播放方法和系统与流程

文档序号:14023298阅读:143来源:国知局
一种多媒体播放方法和系统与流程

本发明涉及多媒体播放领域,更具体地,涉及一种多媒体播放方法和系统。



背景技术:

在嵌入式环境中,多媒体播放系统涉及到的技术比较复杂,播放系统本身对硬件平台的依赖度也比较高。在嵌入式多媒体播放系统中除了要实现复杂的音视频解码之外,还需要考虑到这些不同的音视频解码库如何与播放系统的控制界面进行有效整合。

在现有的一些多媒体播放系统中,一般都采用流媒体播放的结构,通过实时从网络接收流媒体信息,从而进行流媒体视频的播放,以保证观众可以时刻收看到新的视频信息,另一方面,有些场景受限于网络环境影响,无法接收流媒体信息,则进行本地视频播放,将预先储存在播放器内的视频文件进行循环播放。

在现有的多媒体播放系统中,要么实现本地视频的播放,要么实现流媒体的播放,对于gif或多图片动画的播放则无能为力,播放能力单一;另一方面,现有技术中无法实现流媒体视频播放和本地视频播放之间的选择性切换,在一些特定环境中,例如轨道交通或机场中的嵌入式播放系统在网络推流出现问题时,会导致播放卡顿,使得用户体验较低,无法满足正常播放的需求。



技术实现要素:

为解决现有的嵌入式多媒体播放系统中,无法同时实现多类型的文件播放,播放能力单一,过于依赖于网络的稳定性的问题,提供一种多媒体播放方法和系统。

根据本发明的一个方面,提供一种多媒体播放方法,包括:

s1,进行流媒体播放,侦测流媒体数据传输质量;

s2,根据侦测的流媒体数据传输质量低于阈值,判断获知根据本地多媒体数据的内容和预设播放频次,获得本地多媒体数据的播放顺序;

s3,根据所述本地多媒体数据的播放顺序,播放本地多媒体数据。

其中,所述本地多媒体数据的类型包括本地视频信息,gif动画和图片。

其中,在步骤s3后,当根据侦测的流媒体数据传输质量高于阈值的时候,则终止本地多媒体数据的播放,进行流媒体数据的播放。

其中,所述步骤s1之前还包括:预先设置所述本地多媒体数据的播放顺序和播放频次。

所述gif动画和图片通过图形用户界面工具qt进行播放;所述流媒体数据和本地视频信息基于gstreamer-imx播放框架进行播放。

根据本发明的第二方面,提供一种多媒体播放系统,包括:

流媒体模块,用于进行流媒体播放,侦测流媒体数据传输质量;

主控模块,用于根据侦测的流媒体数据传输质量低于阈值,判断获知根据本地多媒体数据的内容和预设播放频次,获得本地多媒体数据的播放顺序;

本地多媒体播放模块,用于根据所述本地多媒体数据的播放顺序,播放本地多媒体数据。

其中,所述本地多媒体播放模块包括本地视频信息播放子模块和本地gif动画图片播放子模块。

其中,所述主控模块还用于,当根据侦测的流媒体数据传输质量高于阈值的时候,则终止本地多媒体数据的播放,进行流媒体数据的播放。

其中,还包播放列表模块,用于预先设置所述本地多媒体数据的播放顺序和播放频次。

其中,所述本地gif动画图片播放子模块通过图形用户界面工具qt实现播放;

所述流媒体模块和本地视频信息播放子模块基于gstreamer-imx播放框架进行播放。

本发明提出的方法,实现了对流媒体数据质量监测,同时实现了流媒体播放和本地播放无缝切换,在一些特殊场景中的嵌入式多媒体播放器中提升了视频播放的流畅度,增强了播放类型的丰富性,提升了用户体验。

附图说明

图1为本发明一实施例提供的一种多媒体播放方法的流程图;

图2为本发明另一实施例提供的一种多媒体播放系统的结构图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

参考图1,图1为本发明一实施例提供的一种多媒体播放方法的流程图,所述方法包括:

s1,进行流媒体播放,侦测流媒体数据传输质量;

s2,根据侦测的流媒体数据传输质量低于阈值,判断获知根据本地多媒体数据的内容和预设播放频次,获得本地多媒体数据的播放顺序;

s3,根据所述本地多媒体数据的播放顺序,播放本地多媒体数据。

具体的,当播放器启动时,通过连接预先设置的网络ip地址,使得可以接受来自网络的流媒体信息,在播放过程中,将一直侦测流媒体数据的传输质量,当侦测到传输质量过低,使得播放出错或中断,则将本地储存的多媒体信息按照预先设定的播放频次要求和播放顺序要求,添加到播放队列中,随后进行本地视频播放。

例如,在某地铁中安装的多媒体播放器中,通过接收流媒体信息,进行流媒体视频的播放,在播放流媒体视频的过程中,将一直侦测流媒体数据的传输速度,这里设置一个传输速度的阈值为100kb/s,当侦测到传输速度低于这个阈值的时候,则可以判定当前的网络连接不稳定,无法维持流媒体视频的顺畅播放,因此,将切换成本地视频播放,以保障播放质量。

在本地多媒体储存库中,每一条多媒体内容都预设有播放顺序和播放频次;例如第一多媒体文件播放顺序为1,播放频次为一次,则在进行本地播放的时候,将所述第一多媒体文件放置在播放队列的第一位;又如第二多媒体文件播放顺序设置为2,播放频率设置为间隔播放,则在播放队列中,将第二多媒体文件放置在多媒体播放列表的第二,四,六位,以此类推,从而实现按照预设播放顺序和播放频次,对本地多媒体文件进行播放。

通过此方法,实现了对流媒体数据质量监测,同时实现了流媒体播放和本地播放无缝切换,在一些特殊场景中的嵌入式多媒体播放器中提升了视频播放的流畅度,提升了用户体验。

在上述实施例的基础上,所述本地多媒体数据的类型包括本地视频信息,gif动画和图片。其中,所述gif动画和图片通过图形用户界面工具qt进行播放;所述流媒体数据和本地视频信息基于gstreamer-imx播放框架进行播放。

具体的,当进行本地播放的时候,将根据播放队列中多媒体文件的内容,选择不同的播放类型,其中播放类型包括本地视频播放、本地gif动画播放和本地多图片动画播放,具体实现代码如下:

其中,本地多媒体数据的类型包括本地视频信息,gif动画和图片。其中,所述gif动画和图片通过图形用户界面工具qt实现播放;所述流媒体数据和本地视频信息基于gstreamer-imx播放框架进行播放。

流媒体模块和本地视频模块都采用独立的线程来实现,为了方便与主控制线程之间的通信,都以qt的qthread类的子类化来实现。在流媒体模块线程中,创建一个流媒体播放器,并持续播放。流媒体播放模块的关健实现在于:

类似的,在本地视频模块线程中,也需创建一个本地音视频播放器,用于播放。本地视频播放器的关键实现在于:首先创建播放需要的视频和音频元件,如下所示:

source=gst_element_factory_make("filesrc","source");//

qtdemux=gst_element_factory_make("qtdemux","demuxer");

vq=gst_element_factory_make("queue","videoq");

hparser=gst_element_factory_make("h264parse","h264parser");

vpudec=gst_element_factory_make("imxvpudec","imxvpudecr");

videosink=gst_element_factory_make("imxipuvideosink",

"imxipuvideosinker");

aq=gst_element_factory_make("queue","audioq");

faad=gst_element_factory_make("faad","faader");

ac=gst_element_factory_make("audioconvert","audioconverter");

vol=gst_element_factory_make("volume","volumeadj");

alsa=gst_element_factory_make("alsasink","alsasinker");

其次,将这些元件放入gstreamer的管道中,以合适的方式将这些元件关联起来。如下所示:

/*puttogetherapipeline*/

gst_bin_add_many(gst_bin(pipeline),source,qtdemux,vq,hparser,vpudec,videosink,\

aq,faad,ac,vol,alsa,null);

gst_element_link_pads(source,"src",qtdemux,"sink");

/*listenfornewlycreatedpads*/

g_signal_connect(qtdemux,"pad-added",

g_callback(cb_new_pad),null);

gst_element_link_many(vq,hparser,vpudec,videosink,null);

gst_element_link_many(aq,faad,ac,vol,alsa,null);

本地gif及多图片动画模块用一个独立的动画控件来实现。关键实现在于:

voidusranimationcontrols::setanimationtype(qstringtype)//设置动画的类型

voidusranimationcontrols::start()//根据不同的动画类型,选择启动不同的播放方式

通过此方法,实现了流媒体视频、本地视频、gif动画和图片多种类型媒体文件的自助播放,增强了播放类型的丰富性,提升了嵌入式播放器的播放兼容性和灵活性。

在上述各实施例的基础上,所述方法还包括,在步骤s3后,当根据侦测的流媒体数据传输质量高于阈值的时候,则终止本地多媒体数据的播放,进行流媒体数据的播放。

具体的,无论在流媒体数据播放或是在本地播放过程中,都会对流媒体数据的传输质量进行侦测,当检测到传输质量高于阈值的时候,则会进行流媒体视频的播放。通过预先设置好的播放优先级,将流媒体播放的优先级设置为最高,当侦测到流媒体数据的传输质量大于阈值的时候,则可以获知当前流媒体播放不会卡顿延迟,将进行流媒体视频的播放。若当前播放类型为本地播放,则重新切换成流媒体播放。

通过此方法,实现了流媒体视频播放和本地播放的无缝切换,提升了在一些特殊场景下如轨道交通或公路交通中的视频播放流畅程度,提升了用户体验。

在上述各实施例的基础上,还包括预先设置所述本地多媒体数据的播放顺序和播放频次步骤。

具体的,通过预先对本地储存库中的多媒体文件的播放顺序和播放频次进行设置,当需要进行本地多媒体播放的时候,则可以按照事先设置的本地多媒体播放顺序和各个多媒体文件的播放频次,进行本地多媒体播放。

参考图2,图2为本发明另一实施例提供的一种多媒体播放系统结构图,所述系统包括:流媒体模块21、主控模块22和本地多媒体播放模块23。

其中,流媒体播放模块21用于进行流媒体播放,侦测流媒体数据传输质量。

其中,主控模块22用于根据侦测的流媒体数据传输质量低于阈值,判断获知根据本地多媒体数据的内容和预设播放频次,获得本地多媒体数据的播放顺序。

其中,本地多媒体播放模块23用于根据所述本地多媒体数据的播放顺序,播放本地多媒体数据。

具体的,当播放器启动时,流媒体模块通过连接预先设置的网络ip地址,使得可以接受来自网络的流媒体信息,在系统进行视频播放的过程中,流媒体模块将一直侦测流媒体数据的传输质量,当侦测到传输质量过低,使得播放出错或中断,主控模块则发送控制指令给本地多媒体播放模块,将本地储存的多媒体信息按照预先设定的播放频次要求和播放顺序要求,添加到播放队列中,随后进行本地视频播放。

例如,在某地铁中安装的多媒体播放器中,流媒体模块通过接收流媒体信息,进行流媒体视频的播放,在播放流媒体视频的过程中,将一直侦测流媒体数据的传输速度,这里设置一个传输速度的阈值为100kb/s,当侦测到传输速度低于这个阈值的时候,则可以判定当前的网络连接不稳定,无法维持流媒体视频的顺畅播放,因此,播放系统将切换成本地视频播放,以保障播放质量。

在本地多媒体储存库中,每一条多媒体内容都预设有播放顺序和播放频次;例如第一多媒体文件播放顺序为1,播放频次为一次,则在进行本地播放的时候,将所述第一多媒体文件放置在播放队列的第一位;又如第二多媒体文件播放顺序设置为2,播放频率设置为间隔播放,则在播放队列中,将第二多媒体文件放置在多媒体播放列表的第二,四,六位,以此类推,从而实现按照预设播放顺序和播放频次,对本地多媒体文件进行播放。

通过此系统,实现了对流媒体数据质量监测,同时实现了流媒体播放和本地播放无缝切换。在一些特殊场景中的嵌入式多媒体播放器中提升了视频播放的流畅度,提升了用户体验。

在上述实施例的基础上,所述本地多媒体播放模块包括本地视频信息播放子模块和本地gif动画图片播放子模块。所述本地gif动画图片播放子模块通过图形用户界面工具qt实现播放;所述流媒体模块和本地视频信息播放子模块基于gstreamer-imx播放框架进行播放。

具体的,当进行本地播放的时候,将根据播放队列中多媒体文件的内容,选择不同的播放类型,其中播放类型包括本地视频播放、本地gif动画播放和本地多图片动画播放。

在视频播放的过程中,本地视频播放子模块和流媒体播放模块使用gstreamer-imx作为播放框架实现播放,gstreamer-imx是一种运行于i.mx6硬件平台之上的多媒体框架。在嵌入式环境中,利用gstreamer-imx可以构建一系列的多媒体播放模块,包括本地视频播放,流媒体播放。另一方面,本地gif动画图片播放子模块通过图形用户界面工具qt实现播放。qt是跨平台的图形用户界面(graphicaluserinterface,简称gui)工具,可以利用qt来实现gif及多图片动画的播放。

通过此系统,实现了流媒体视频,本地视频和gif动画图片多种类型媒体文件的自助播放,提升了嵌入式播放器的播放兼容性和灵活性。

在上述各实施例的基础上,所述主控模块还用于,当根据侦测的流媒体数据传输质量高于阈值的时候,则终止本地多媒体数据的播放,进行流媒体数据的播放。

具体的,无论在流媒体数据播放或是在本地播放过程中,都会对流媒体数据的传输质量进行侦测,当检测到传输质量高于阈值的时候,则会进行流媒体视频的播放。通过预先设置好的播放优先级,将流媒体播放的优先级设置为最高,当侦测到流媒体数据的传输质量大于阈值的时候,则可以获知当前流媒体播放不会造成卡顿延迟,将进行流媒体视频的播放。若当前播放类型为本地播放,则重新切换成流媒体播放。

通过此系统,实现了流媒体视频播放和本地播放的无缝切换,提升了在一些特殊场景下如轨道交通或公路交通中的视频播放流畅程度,提升了用户体验。

在上述各实施例的基础上,还包播放列表模块,用于预先设置所述本地多媒体数据的播放顺序和播放频次。

具体的,通过预先对本地储存库中的多媒体文件的播放顺序和播放频次进行设置,当需要进行本地多媒体播放的时候,则可以按照事先设置的本地多媒体播放顺序和各个多媒体文件的播放频次,进行本地多媒体播放。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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