我用Popcorn.js构建一个VideoAnnotationEditor。用户可以在想要发表评论(=脚注)并输入文本和持续时间时点击该视频。我正在添加这样的脚注:
p = pop.footnote({
start: 0,
end: duration,
text: text,
target: "footnotediv"
});
当添加所有脚注时,我想将数据存储到数据库中。但是我怎样才能以一种漂亮的格式获得所有脚注?我试过了
JSON.stringify(pop.getTrackEvents())
但它包含很多不必要的东西。是否有其他方法或者我应该将所有脚注存储在自己的数据结构中,然后再将它们添加到爆米花中。
请求任何帮助。
答案 0 :(得分:0)
不幸的是,Popcorn不会为你做这件事,因为它将它的“私有”数据存储在与插件特定的用户指定数据相同的对象上。这些跟踪事件对象中的每一个都将包含一堆私有内容(_natives
,compose
,_running
等),有时可以通过插件添加半私有内容(例如container
)。
如果您想自己过滤掉这些内容,可以将您不想保存的字段列入黑名单,也可以将您所执行的字段列入白名单。如果您有许多不同的插件,并且您并不总是知道您将需要哪些字段,请使用黑名单。但老实说,这样做了几次,我建议只是在Popcorn之外编写自己的数据结构。
但是,如果您所做的只是脚注,那就相对简单了,白名单方法应该工作。像这样:
var trackEvents = pop.getTrackEvents();
trackEvents = trackEvents.map(function (trackEvent) {
return {
start: trackEvent.start,
end: trackEvent.end,
text: trackEvent.text
};
});
saveData(JSON.stringify(trackEvents));