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
95
96
97
98
99
100
101
102
103
104
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.media;
import java.util.concurrent.ConcurrentLinkedQueue;
public interface BaseHlsPlayer {
enum TrackType {
UNDEFINED,
AUDIO,
VIDEO,
TEXT,
}
enum ResourceError {
BASE(-100),
UNKNOWN(-101),
PLAYER(-102),
UNSUPPORTED(-103);
private int mNumVal;
ResourceError(final int numVal) {
mNumVal = numVal;
}
public int code() {
return mNumVal;
}
}
enum DemuxerError {
BASE(-200),
UNKNOWN(-201),
PLAYER(-202),
UNSUPPORTED(-203);
private int mNumVal;
DemuxerError(final int numVal) {
mNumVal = numVal;
}
public int code() {
return mNumVal;
}
}
interface DemuxerCallbacks {
void onInitialized(boolean hasAudio, boolean hasVideo);
void onError(int errorCode);
}
interface ResourceCallbacks {
void onLoad(String mediaUrl);
void onDataArrived();
void onError(int errorCode);
}
// Used to identify player instance.
int getId();
// =======================================================================
// API for GeckoHLSResourceWrapper
// =======================================================================
void init(String url, ResourceCallbacks callback);
boolean isLiveStream();
// =======================================================================
// API for GeckoHLSDemuxerWrapper
// =======================================================================
void addDemuxerWrapperCallbackListener(DemuxerCallbacks callback);
ConcurrentLinkedQueue<GeckoHLSSample> getSamples(TrackType trackType, int number);
long getBufferedPosition();
int getNumberOfTracks(TrackType trackType);
GeckoVideoInfo getVideoInfo(int index);
GeckoAudioInfo getAudioInfo(int index);
boolean seek(long positionUs);
long getNextKeyFrameTime();
void suspend();
void resume();
void play();
void pause();
void release();
}
|