MediaSource是AudioSource和VideoSource的基類(lèi),它里面定義了一些方法,供子類(lèi)繼承。
它是一層包裹在C++外面的一層,C++里面也是有MediaSource的。
//一個(gè)媒體資源類(lèi)具有以下四個(gè)狀態(tài),初始化中,工作中,結(jié)束,消音/消去視頻
public enum State { INITIALIZING, LIVE, ENDED, MUTED }
創(chuàng)建時(shí)需要傳進(jìn)來(lái)一個(gè)nativeSource
final long nativeSource; // Package-protected for PeerConnectionFactory.
public MediaSource(long nativeSource) {
this.nativeSource = nativeSource;
}
//獲取當(dāng)前的狀態(tài),通過(guò)調(diào)用native層方法獲取到
public State state() {
return nativeState(nativeSource);
}
//銷(xiāo)毀當(dāng)前的媒體資源
public void dispose() {
free(nativeSource);
}
//兩個(gè)native層的方法,用來(lái)獲取狀態(tài)和釋放資源的
private static native State nativeState(long pointer);
private static native void free(long nativeSource);