forked from ChihChengYang/wfs.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflow-controller.js
94 lines (72 loc) · 2.05 KB
/
flow-controller.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* Flow Controller
*/
import Event from '../events';
import EventHandler from '../event-handler';
class FlowController extends EventHandler {
constructor(wfs) {
super(wfs,
Event.MEDIA_ATTACHED,
Event.BUFFER_CREATED,
Event.FILE_PARSING_DATA,
Event.FILE_HEAD_LOADED,
Event.FILE_DATA_LOADED,
Event.WEBSOCKET_ATTACHED,
Event.FRAG_PARSING_DATA,
Event.FRAG_PARSING_INIT_SEGMENT);
this.fileStart = 0;
this.fileEnd = 0;
this.pendingAppending = 0;
this.mediaType = undefined;
channelName:this.channelName;
}
destroy() {
EventHandler.prototype.destroy.call(this);
}
onMediaAttached(data) {
if (data.websocketName != undefined){
var client = new WebSocket( 'ws://' + window.location.host + '/' + data.websocketName );
this.wfs.attachWebsocket(client,data.channelName);
}else{
console.log('websocketName ERROE!!!');
}
}
onBufferCreated(data) {
this.mediaType = data.mediaType;
}
onFileHeadLoaded(data) {
}
onFileDataLoaded(data) {
}
onFileParsingData(data) {
}
onWebsocketAttached(data) {
this.wfs.trigger(Event.BUFFER_APPENDING, {type: 'video', data: data.payload, parent : 'main'});
}
onFragParsingInitSegment(data) {
var tracks = data.tracks, trackName, track;
track = tracks.video;
if(track) {
track.id = data.id;
}
for (trackName in tracks) {
track = tracks[trackName];
var initSegment = track.initSegment;
if (initSegment) {
this.pendingAppending++;
this.wfs.trigger(Event.BUFFER_APPENDING, {type: trackName, data: initSegment, parent : 'main'});
}
}
}
onFragParsingData(data) {
if(data.type === 'video') {
}
[data.data1, data.data2].forEach(buffer => {
if (buffer) {
this.pendingAppending++;
this.wfs.trigger(Event.BUFFER_APPENDING, {type: data.type, data: buffer, parent : 'main'});
}
});
}
}
export default FlowController;