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