Check out the Contributors Guide!
If you're interested in a collaborative project or have a use case, in which your institution could support additional open source developments, please get in touch any time via
joscha.jaeger | at | filmicweb | dot | org
var myInstance1 = FrameTrail.init({});
myInstance1.startEditing();
myInstance1.stopEditing();
/* empty dummy method until destroy methods have been defined for all modules */
myInstance1.destroy();
Add Hypervideo Controller API to abstract API:
myInstance1.play();
myInstance1.pause();
myInstance1.duration;
myInstance1.currentTime = 12;
Expose selected events to the abstract API:
myInstance1.onReady // myInstance1.on(“ready”)
myInstance1.onTimeupdate
myInstance1.onSeeking
myInstance1.onSeeked
myInstance1.onPlay
myInstance1.onPlaying
myInstance1.onPause
myInstance1.onEnded
myInstance1.onTimelineEvent(eventObject) // any time-based event (annotation, etc.)
myInstance1.onUserAction(Action Object) // Actions defined in "User Traces"
Expose selected data to the abstract API (read-only):
myInstance1.metadata
myInstance1.annotations
myInstance1.overlays
myInstance1.codesnippets
myInstance1.getContentCollection()
Manage (active) instances:
FrameTrail.getActiveInstance() // reacts to keyboard controls / url hash changes
FrameTrail.setActiveInstance()
FrameTrail.instances
Notes:project.json
and database module (name, description, ...)config.json
_data/
- hypervideos/
- resources/
- config.json
- tagdefinitions.json
- users.json
(remove /projects/
directory level and _index.json
)
/projectmanager/
, database methods, etc.)masterpassword.php
)<body>
<div id=”playerContainer1””></div>
<div id=”myCustomDiv”></div>
</body>
Initialize FrameTrail by options object:
var myInstance1 = FrameTrail.init({
target: “#playerContainer1”, // selector, element, jQuery object, etc..
contentTargets = {
/* SampleName defined in hypervideo.json > layoutArea (config in Layout Manager) */
“#myCustomDiv”: “SampleName”
},
contents: {
hypervideo: “https://..../hypervideo.json”
annotationsIndex: “https://../_index.json”, // or null (optional)
annotations: [ “https://../_123.json”, {} ], // or null (optional)
resources: [{
label: "Choose Resources",
data: {},
type: "frametrail"
},
{
label: "British Library",
data: "https://..../lorem.json",
type: "iiif"
}], // (optional?)
users: “https://../users.json” // (optional?)
}
}
Data endpoints should reference eitherserver
parameter is set, the path to a data directory of an existing FrameTrail installation is used (can be relative / local), while single endpoints can still be overwritten by providing an additional endpoint (eg. annotations
):
data: {
server: “http://frametrail.org/projektXY/_data/” // expects default directory structure
annotations: [ “https://../_123.json” ]
}
frametrail.css
& frametrail.js
files (this needs to include all libraries and possibly replace relative paths to the server directory and library references within PDFjs)./simpleplayer/
directory/simpleplayer/
directory structure (in preparation for Advanced Build Process):
simpleplayer/
- frametrail.css
- frametrail.js
- player.html
- resourcemanager.html
build/
- _server/
- resourcemanager/
- index.html
- frametrail.css
- frametrail.js
- index.html
src/
- _lib/
- _server/
- _shared/
- player/
- resourcemanager/
- index.html
examples/
- index.html
- example1.html
- example2.html
- example2Annotations.json
- example2Hypervideo.json
docs/
README.md
LICENSE.md
yuidoc.json
simpleplayer/
build path (see Simple Build Process) to build/