专利名称:时间轴形式的内容定制方法和装置的利记博彩app
技术领域:
本发明涉及通过网络提供多媒体内容播放的技术,特别涉及时间轴形式的多媒体内容定制播放方法与装置。
背景技术:
在 当前通过网络让用户来编辑内容播放列表时,通常有两种方式,一种方式是允许用户将内容按顺序排列,然后按顺序播放。另外一种方式是将设定好时间的内容放到网上,供用户选择设定好的内容单进行播放。但是这两种方式只适用于内容数据库中已有的文件。另外,现有技术的这些方式还不能支持用户在网页上按自己的意愿定制包含视频直播、音频直播、视频点播、音频点播等各类内容的播放时间、使这些不同类型的播放内容构成一个视听内容的播放列表呈现给用户,以类似于电台广播的方式在预定的周期内按时间顺序播放定制的播放列表中的各种内容。
发明内容
本发明的目的之一是要提供一种新的提供用户在网络上定制包含视频直播、音频直播、视频点播、音频点播等各类内容的内容播放列表的方法与装置。本发明的又一目的是提供一种方便用户直观地编排内容播放列表的方法与装置。本发明的又一目的是提供一种使用户简单地操作以编排内容播放列表的方法与
>J-U ρ α装直。根据本发明的一个方面,提供了定制网络播放内容的方法,包括I)接收用户对播放内容的选择,确定所选择播放内容的类型和时间属性,2)根据所述播放内容的类型和时间属性确定播放内容在时间轴上的位置,形成时间轴形式的播放内容视图,和3)向用户呈现所述时间轴形式的播放内容视图。根据本发明的另一方面,提供了定制网络播放内容的装置,包括I)数据库查询单元,接收用户对播放内容的选择,在数据库中查找相应的播放内容,2)后台处理单元,根据所述播放内容的类型和时间属性确定播放内容在时间轴上的位置,形成时间轴形式的播放列表,3)浏览器单元,向用户呈现所述时间轴形式的播放列表。上述方法和装置的有益效果之一是,用户可以在同一内容播放列表中添加视频直播、音频直播、视频点播、音频点播内容,实现在同一内容播放列表中将来自不同资源的内容信息进行混编,从而使用户能够自己定制混合播放各种类型内容的网络电台。此外,用户可以简单而又直观地操作来根据自己的喜好编辑内容播放列表。
下面结合附图对本发明的一些实施方式进行说明。
图I是本发明一实施方式的适用于网络定制播放内容的方法的系统示意框图;图2是本发明一实施方式的时间轴形式的网络播放内容的示意图;图3是本发明一实施方式的实现时间轴形式的定制网络播放内容的方法流程图。
具体实施例方式下面将结合附图,对本发明的实施例进行描述。如图I所示,本发明一实施方式的适用于网络定制播放内容的方法的系统包括数据库10,存储各种类型的播放内容的内容数据及相关的信息数据;后台应用单元20,响应用户通过浏览器(用户界面)的请求,从数据库10读取内容数据及相关信息,进行过滤、
分析等处理,将处理结果反馈给浏览器,以及对外提供语言无关接口供浏览器调用;浏览器单元30,为用户提供呈现操作界面和操作结果(例如内容播放列表,内容视图显示,比例放大与缩小时间轴视图等)显示的浏览器。通过该系统,解决了常规的内容定制系统不能将视频直播、音频直播、视频点播、音频点播等多种类型内容添加在单一的内容播放时间表(内容播放列表)中的问题,可以实现音、视频内容添加、编辑、删除、复制、预览、放大、缩小、图像渲染等功能。数据库10可包括内容信息数据库101、视频直播内容数据库102、音频直播内容数据库103、视频点播内容数据库104、音频点播内容数据库105,以及定制播放内容数据库106。视频直播内容数据库102和音频直播内容数据库103中储存的是直播内容的Http数据流的地址。音视频的点播内容以常规的格式分别储存在上述的视频点播内容数据库104他音频点播内容数据库105中。此外,数据库10还可储存用户界面信息、内容关联信息、用户收藏信息等与内容相关的信息。内容信息数据库101储存了内容数据库102-105中所有播放内容的信息。定制播放内容数据库106中储存了用户定制的内容播放列表(后文将详细说明)。各类内容是以常规的格式储存在各自的数据库中。例如,音频内容来源的数据格式可以采用RealAudio、MP3、WMA、APE、FLAC以及AAC等。视频内容来源的数据格式可以采用AVI、nAVI、DV-AVI、MPEG、DivX, MOV、ASF、WMV, RMVB等。在本发明的实施方式中,存储源文件后,将音频内容统一转换为MP3格式,视频内容转换为FLV格式后进行存储。直播类内容设有开始播放和结束播放的时间的属性,点播类内容虽然没有开始播放和结束播放的时间,但设有播放时长属性。点播类内容的播出开始时间可以由用户自行设定。用户可以在直播内容的开始播放时间和结束播放的时间之间设定自己想要收听/收看的直播内容播放起止时间。内容播放列表就是各类内容按开始播出时间的顺序排列的数据组合。后台应用单元20采用Java语言实现。通过该单元可以实现多个应用系统。例如内容播放列表系统,其储存音频和视频内容的播放时间安排。每个内容播放列表记录的就是特定用户定制的内容的信息数据。每一个内容的信息都包含了其特定的属性,例如播放属性直播视频,直播音频,点播视频,点播音频;分类属性音乐、娱乐、新闻、健康、戏曲、旅游、美食等;资源属性如XX音乐台、XX教育台、XX交通台、XX体育台等;时段属性即播放内容的开始时间和结束时间;名称属性即播放内容的名称。
后台应用单元20还可提供对各类内容选择的后台支持。对内容的选择条件可以包括上述的各类属性。另外,还可以设置文本输入框,接收用户根据自己感兴趣的内容(包括上述的各种属性的名称)输入的文字选择。例如用户选择音频点播,后台应用单元20就可以提供按音频点播条件查询出的音频文件列表。如果用户选择音频直播,后台应用单元20就可以提供按音频直播条件查询出的音频文件列表。当用户选择这些属性或手动输入感兴趣的内容名称或属性后,后台应用单元20的数据访问单元201响应浏览器请求,根据用户输入的查询条件组织SQL查询语句,从数据库10中读取相应的关于播放内容信息的数据,并对该数据进行封装,包括对原始数据进行删除和转换,以保持不同类型内容的信息格式的统一。
例如,对于点播内容,为了保持不同类型内容的信息格式的统一,数据访问单元201将点播内容的播放时长转换为开始时间和播放时间,以与直播内容的信息格式统一。为此,要删除该点播内容的播放时长,将时长转换成播放的开始时间和结束时间(开始时间默认为00:00,结束时间为开始时间加上内容时长后的时间)。此外,封装将保留内容名称、时间属性、流地址、播放属性、分类属性、资源属性等,并删除原内容中的主持人信息,对于上传内容还会删除作者和时间,文件大小等信息,最终形成统一的播放内容信息格式。后台应用单元20通过提供语言无关接口(例如JSON数据接口)来供客户端浏览器调用。以下是提供JSON数据接口的代码段示例//返回给客户端浏览器的数据对象protected ActionStatus as = new ActionStatus();
protected void writeToResponse(
HttpServletResponse response, Stringjson)throws IOException {
String statusJson = null; try{、
Il将数据对象序列化成JSON格式的字符串,如{’name’: 'Test'} status Json = JSONUtil.serialize(as);
} catch(JSONException e){
LOG.wam(e.getMessage(), e);
}
Il获取回调接口信息,用于支持跨域Ajax调用 String callbackParameter = getCallbackParameter();
String callbackName = null;
if ((callbackParameter != null) && (callbackParameter.length() > 0)) { callbackName = request.getParameter(callbackParameter);
}
StringBuffer buf = new StringBuffer();
if ((callbackName != null) && (callbackName.length() > 0)) {
Il包装Ajax回调接口
json = json.substring(callbackName.length() +1, json.length() - I);
buf. append(callbackN ame). append("( {") .append("\"status\":").append(statusJson)
.append(",\"data\": ").append(j son).append("})");
}else{
buf.append("{").append("\"status\":").append(statusJson)
.append(" ,\"data\"append(j son). append("}");
}
//将字符串数据返回给客户端浏览器
super.writeToResponse(response, buf.toString(), true);
} 后台应用单元20可以包含多个单元以支持用户对内容进行多种条件的选择。例如收藏数据单元202 :单元202支持提供用户查询其他用户收藏的内容和内容列表数据的功能。当用户选择“其他用户收藏”的条件时,收藏数据单元202根据用户选择查询到其它用户收藏的内容信息数据,并与收藏内容数据库中的信息数据进行比对,删除无效的内容信息数据(如已被删除的音频点播数据)。然后将查询得到的关于该收藏的内容信息数据提供给浏览器,以呈现给用户。内容关联性分析单元203 :用户在浏览器显示的定制页面中选择一个内容名称以进行添加操作时,浏览器会同步发起Ajax请求来响应该用户的操作。以下代码段示例了该功能的一种实现
//加载与选中内容相关的内容信息列表
Ilurl:加载内容的url,
Ilparams:选中内容信息,用于查询相关内容 function loadRelated(url, params) {
Il发起Aj ax请求
$.getJSON(url, params, function(json){
//回调函数,将查询到的相关内容数据渲染到页面中 $. each(j son. data, function(p) {//逐个显示相关内容名称
$('#dataGrid').append('<span>' + p.name + '</span>');
});
});
}内容关联性分析单元203对内容信息的数据进行分析,并找出与该内容信息的内容分类属性(音乐、体育、交通...等)或其它属性相同的内容资源的信息返回给浏览器。播放列表过滤单元204:当为用户提供多个播放内容列表以供用户进行选择时, 单元204先对这些播放内容列表进行过滤、分析,例如删除没有播放内容的空列表等,然后将过滤后留下的有效内容播放列表的信息传送至浏览器,以呈现给用户。音视频过滤单元205 :对根据用户查询条件所查询出的音视频内容进行过滤,删除无效的内容(如已被后台管理员做删除标记的回放内容)。浏览器单元30支持为用户提供操作界面和显示播放内容定制结果的浏览器。完成音视频内容的添加、编辑、删除、复制、预览、放大、缩小、图像渲染等功能,该单元采用JavaScript、CSS (级联样式表)和HTML实现。浏览器单元30包括内容分类单元301,根据用户在内容播放列表上添加内容的属性,判断该内容属于直播类还是点播类,根据判断结果,由数据访问单元201重新封装内容信息数据,供时间轴使用。播放列表维护单元302,利用浏览器的常规手段,将内容播放列表数据渲染,并绘制到时间轴上。该渲染包括对内容时间框、当前内容蒙版层、动态提示框、内容时间跨度的绘制,和文本截断、时间轴放大、缩小等。视图渲染单元303:根据当前内容播放列表中的内容信息数据,计算内容视图的坐标位置和宽度,设置内容视图的CSS样式。浏览器渲染时间轴上的内容视图显示,以及绘制时间轴刻度,内容蒙版层和各种鼠标悬停效果(如鼠标悬停于内容视图上时弹出界面信息提示)。事件监听响应单元304 :负责检测用户在时间轴上以及周边区域产生的DOM(Document Object Model :文档对象模型)事件,并根据事件类型不同由相关功能响应。包括监听、响应鼠标移动、鼠标点击等事件。本发明中,在浏览器常规的默认监听处理之外增加了特定的处理函数,来完成对不同事件的处理逻辑。下面将详细说明。所实现的特殊事件包括拖动内容视图左边框事件,此处增加的处理函数调整内容视图的左边框的位置、内容的开始播出时间以及时间跨度线(见图2)。拖动内容视图右边框事件,此处增加的处理函数调整内容视图的右边框的位置、内容的开始播出时间以及时间跨度线。一个处理函数示例如下onMaskLeftMove: function(e) {
if(ctx.curItem.isLive()) {
$(document).bind( {
’mousedown.drag’: ctx.observer.onMouseDown, 'mousemove.drag': ctx.observer.onLeftMove, 'mouseup.drag': ctx.observer.onLeftUp
});
}else{
$(ctx).trigger(Playlist.Event.TimePrompt, ctx.curltem);
e.stopPropagation();
return false;
}
}上述函数中,首先使用语句“ctx. curltem. isLive O ”判断播放内容是否为直播类。如果是直播类内容,则为页面文档添加鼠标按下(mousedown, drag)、鼠标移动(mousemove. drag)和鼠标释放(mouseup, drag)三个事件监听器,这三个事件监听器将用于处理用户调整内容的播出时间时产生的事件。如果是点播类内容,则弹出调整内容播出时间的对话框,用户通过该对话框可以调整内容的实际播出时间。需要说明,有很多事件都属于鼠标点击事件,只是点击位置不同对应的处理逻辑 不同。这类点击事件都是采用常规的处理手段。例如点击播放内容的事件,引起为该内容视图产生蒙版层的操作,在浏览器上表现为内容视图框变为红色,并显示删除按钮。播放列表输出单元305,封装内容播放列表数据,根据封装的数据,生成按开始时间先后顺序排列的定制内容播放列表,供用户预览。由此可以实现定制内容播放列表的实时预览,单/多天保存等。而且用户可在预览界面对定制的内容进行删除操作。用户定制的内容播放列表存储在定制播放内容数据库106中。一种内容播放列表的格式如下内容播放列表示例
权利要求
1.定制网络播放内容的方法,包括 1)接收用户对播放内容的选择,确定所选择播放内容的类型和时间属性, 2)根据所述播放内容的类型和时间属性确定播放内容在时间轴上的位置,形成时间轴形式的播放内容视图,和 3)向用户呈现所述时间轴形式的播放内容视图。
2.根据权利要求I所述的方法,其中所述播放内容的类型包括直播视频、直播音频、点播视频、点播音频。
3.根据权利要求2所述的方法,还包括,根据所述播放内容的类型和时间属性,对所述播放内容进行过滤。
4.根据权利要求2所述的方法,其中向用户呈现所述时间轴形式的播放内容视图包括 计算所述时间轴上的播放内容视图的坐标位置和宽度,绘制时间轴刻度。
5.根据权利要求4所述的方法,其中所述形成时间轴形式的播放内容视图包括将所述播放内容信息数据封装成统一的播放内容信息格式。
6.根据权利要求2所述的方法,还包括为用户提供播放内容的选择条件,包括电台频道、内容类型、播放时段、内容名称。
7.根据权利要求2所述的方法,还包括当用户选择直播内容时,为用户提供在所述直播内容的开始时间和结束时间之间的播放时间选择。
8.根据权利要求2所述的方法,还包括 对当前播放内容的数据模型进行线性遍历,计算出空余时间段,和对于点播内容,向用户呈现时间选择对话框,由用户选择要添加到时间轴的播放内容时间段。
9.根据权利要求8所述的方法,还包括 用户确定播放内容的播出时间后,根据内容开始时间查找该播放内容视图在时间轴中的位置,和/或 确定要添加的播放内容的播出时间是否存在冲突。
10.根据权利要求9所述的方法,其中,所述播放内容的播出时间的冲突情况包括 完全相同新添加播放内容的开始、结束时间与时间轴上已存在的播放内容的开始、结束时间完全相同, 全覆盖新添加播放内容的开始时间与时间轴上已存在的播放内容的开始时间相同,结束时间迟于已存在的播放内容的结束时间, 前覆盖新添加播放内容的开始时间早于时间轴上已存在的播放内容的开始时间,结束时间介于已存在的播放内容的开始时间和结束时间之间; 后覆盖新添加播放内容的开始时间介于已存在的播放内容的开始时间和结束时间之间; 无冲突新添加播放内容的结束时间早于已存在的播放内容的开始时间。
11.根据权利要求10所述的方法,其中,以新的播放内容视图为中心,沿时间轴向前后两个方向遍历,按以下方式执行冲突处理 完全相同、全覆盖删除现有内容;前覆盖修正现有内容的开始时间为新内容的结束时间; 后覆盖修正现有内容的结束时间为新内容的开始时间。
12.根据权利要求1-11任一项所述的方法,还包括 提供位于时间轴左右两侧的“左移”、“右移”按钮, 当用户点击所述“左移”或“右移”按钮时,确定每次移动的位移量,重新绘制时间轴和内容视图的图像。
13.根据权利要求1-12任一项所述的方法,其中,将播放内容视图添加至时间轴的步骤包括 通过播放内容的开始时间计算内容视图左侧在时间轴中的相对位置, 根据内容时长确定该内容视图在时间轴上的宽度,和 将内容视图插入时间轴的DOM树中,由浏览器渲染DOM树,以显示该内容视图。
14.根据权利要求13所述的方法,还包括根据所选择内容的时间跨度,确定时间轴的刻度所代表的时间。
15.根据权利要求13所述的方法,还包括根据用户操作将时间轴以及内容视图进行比例放大或缩小。
16.定制网络播放内容的装置,包括 1)数据库查询单元,接收用户对播放内容的选择,在数据库中查找相应的播放内容, 2)后台处理单元,根据所述播放内容的类型和时间属性确定播放内容在时间轴上的位置,形成时间轴形式的播放列表, 3)浏览器单元,向用户呈现所述时间轴形式的播放列表。
17.根据权利要求16所述的装置,其中所述播放内容的类型包括直播视频、直播音频、点播视频、点播音频。
18.根据权利要求17所述的装置,其中所述后台处理单元根据所述播放内容的类型和时间属性,对所述播放内容进行过滤。
19.根据权利要求17所述的装置,其中所述浏览器单元包括 视图渲染单元,计算播放内容视图在所述时间轴上的的坐标位置和宽度,绘制时间轴刻度。
20.根据权利要求19所述的装置,其中所述后台处理单元包括数据访问单元,将所述播放内容数据封装成统一的播放内容信息格式。
21.根据权利要求20所述的装置,所述浏览器单元进一步为用户提供播放内容的选择条件,包括电台频道、内容类型、播放时段、内容名称。
22.根据权利要求21所述的装置,其中所述浏览器单元还包括播放列表维护单元,对用户已定制的内容播放列表进行线性遍历,确定空余时间段,并且向用户呈现时间选择对话框,由用户选择要添加的播放内容时间段,或由用户自定义播放内容的时间段。
23.根据权利要求22所述的装置,其中所述播放列表维护单元在用户确定播放内容的播出时间后,根据播放内容的开始时间,查找该播放内容在含有播放内容视图的时间轴中的位置,和/或 所述播放列表维护单元的将所述播放内容添加到播放内容所在的时间轴前,采用线性遍历方法,计算要添加的播放内容的播出时间是否存在冲突。
24.根据权利要求17-23任一项所述的装置,其中所述浏览器单元还包括事件监听响应单元,根据用户对时间轴左右两侧的“左移”、“右移”按钮的点击,计算每次移动的位移量,相应修改时间轴的CSS属性,述呈现部根据CSS属性变化重新绘制时间轴的图像。
25.根据权利要求17-23任一项所述的装置,所述浏览器单元进一步根据用户操作将时间轴以及内容视图进行比例放大或缩小。
全文摘要
本发明提供了一种定制网络播放内容的方法,包括接收用户对播放内容的选择,确定所选择播放内容的类型和时间属性;根据所述播放内容的类型和时间属性确定播放内容在时间轴上的位置,形成时间轴形式的播放内容视图;向用户呈现所述时间轴形式的播放内容视图。本发明还提供了一种定制网络播放内容的装置。用户可以在同一内容播放列表中添加视频直播、音频直播、视频点播、音频点播内容,实现在同一内容播放列表中将来自不同资源的内容信息进行混编。
文档编号H04N21/462GK102665128SQ20121012911
公开日2012年9月12日 申请日期2012年4月27日 优先权日2012年4月27日
发明者严玉鹏, 常青, 李晓晖, 杨立峰, 汪良, 焦楠, 王二东, 王秋, 蔡明可, 边江, 钟华栋 申请人:北京人民广播电台