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