ovenplayer
Version:
OvenPlayer is Open-Source HTML5 Player. OvenPlayer supports WebRTC Signaling from OvenMediaEngine for Sub-Second Latency Streaming.
57 lines (45 loc) • 1.27 kB
JavaScript
/**
* Created by hoho on 2018. 5. 29..
*/
import { hmsToSecond, trim } from "utils/strings"
function _entry(data) {
var entry = {};
var array = data.split('\r\n');
if (array.length === 1) {
array = data.split('\n');
}
var idx = 1;
if (array[0].indexOf(' --> ') > 0) {
idx = 0;
}
if (array.length > idx + 1 && array[idx + 1]) {
// This line contains the start and end.
var line = array[idx];
var index = line.indexOf(' --> ');
if (index > 0) {
entry.start = hmsToSecond(line.substr(0, index));
entry.end = hmsToSecond(line.substr(index + 5));
entry.text = array.slice(idx + 1).join('\r\n');
}
}
return entry;
}
const SrtParser = function(data) {
var captions = [];
data = trim(data);
var list = data.split('\r\n\r\n');
if (list.length === 1) {
list = data.split('\n\n');
}
for (var i = 0; i < list.length; i++) {
if (list[i] === 'WEBVTT') {
continue;
}
var entry = _entry(list[i]);
if (entry.text) {
captions.push(entry);
}
}
return captions;
}
export default SrtParser;