linphone-LinphoneCallParams.java文件分析

说明

专门作为Audio和Video的参数

功能

  1. 设置视频的带宽
  2. 设置音频的带宽
  3. 设置媒体的加密数据(encryption)
  4. 设置是否允许低带宽
  5. 设置RecordFile
  6. 设置Sdp
  7. 设置会话名称等
  8. 是否允许多个rtp请求

UML类图

linphone-LinphoneCallParams.java文件分析_第1张图片

LinphoneCallParamsImpl.java

package org.linphone.core;

import org.linphone.core.LinphoneCore.MediaDirection;
import org.linphone.core.LinphoneCore.MediaEncryption;
import org.linphone.core.LinphoneCore.StreamType;

public class LinphoneCallParamsImpl implements LinphoneCallParams {
    protected final long nativePtr;

    public LinphoneCallParamsImpl(long nativePtr) {
        this.nativePtr = nativePtr;
    }

    private native void enableVideo(long nativePtr, boolean b);
    private native boolean getVideoEnabled(long nativePtr);
    private native void audioBandwidth(long nativePtr, int bw);
    private native void setMediaEncryption(long nativePtr, int menc);
    private native int getMediaEncryption(long nativePtr);
    private native long getUsedAudioCodec(long nativePtr);
    private native long getUsedVideoCodec(long nativePtr);
    private native void destroy(long nativePtr);
    private native void enableLowBandwidth(long nativePtr, boolean enable);
    private native boolean isLowBandwidthEnabled(long nativePtr);

    public boolean getVideoEnabled() {
        return getVideoEnabled(nativePtr);
    }

    public void setVideoEnabled(boolean b) {
        enableVideo(nativePtr, b);
    }

    @Override
    protected void finalize() throws Throwable {
        destroy(nativePtr);
        super.finalize();
    }

    public void setAudioBandwidth(int value) {
        audioBandwidth(nativePtr, value);
    }

    public MediaEncryption getMediaEncryption() {
        return MediaEncryption.fromInt(getMediaEncryption(nativePtr));
    }

    public void setMediaEnctyption(MediaEncryption menc) {
        setMediaEncryption(nativePtr, menc.mValue);
    }

    public PayloadType getUsedAudioCodec() {
        long ptr = getUsedAudioCodec(nativePtr);
        if (ptr == 0) return null;
        return new PayloadTypeImpl(ptr);
    }

    public PayloadType getUsedVideoCodec() {
        long ptr = getUsedVideoCodec(nativePtr);
        if (ptr == 0) return null;
        return new PayloadTypeImpl(ptr);
    }

    private native boolean localConferenceMode(long nativePtr);
    public boolean localConferenceMode() {
        return localConferenceMode(nativePtr);
    }

    public void enableLowBandwidth(boolean enable) {
        enableLowBandwidth(nativePtr, enable);
    }

    public boolean isLowBandwidthEnabled() {
        return isLowBandwidthEnabled(nativePtr);
    }

    private native void setRecordFile(long nativePtr, String path);
    @Override
    public void setRecordFile(String path) {
        setRecordFile(nativePtr,path);
    }

    private native void addCustomHeader(long nativePtr, String name, String value); 
    @Override
    public void addCustomHeader(String name, String value) {
        addCustomHeader(nativePtr,name,value);
    }

    private native String getCustomHeader(long nativePtr, String name);
    @Override
    public String getCustomHeader(String name) {
        return getCustomHeader(nativePtr,name);
    }

    private native void addCustomSdpAttribute(long nativePtr, String name, String value); 
    @Override
    public void addCustomSdpAttribute(String name, String value) {
        addCustomSdpAttribute(nativePtr, name, value);
    }

    private native void addCustomSdpMediaAttribute(long nativePtr, int type, String name, String value); 
    @Override
    public void addCustomSdpMediaAttribute(StreamType type, String name, String value) {
        addCustomSdpMediaAttribute(nativePtr, type.mValue, name, value);
    }

    private native String getCustomSdpAttribute(long nativePtr, String name);
    @Override
    public String getCustomSdpAttribute(String name) {
        return getCustomSdpAttribute(nativePtr, name);
    }

    private native String getCustomSdpMediaAttribute(long nativePtr, int type, String name);
    @Override
    public String getCustomSdpMediaAttribute(StreamType type, String name) {
        return getCustomSdpMediaAttribute(nativePtr, type.mValue, name);
    }

    private native void clearCustomSdpAttributes(long nativePtr);
    @Override
    public void clearCustomSdpAttributes() {
        clearCustomSdpAttributes(nativePtr);
    }

    private native void clearCustomSdpMediaAttributes(long nativePtr, int type);
    @Override
    public void clearCustomSdpMediaAttributes(StreamType type) {
        clearCustomSdpMediaAttributes(nativePtr, type.mValue);
    }

    private native void setPrivacy(long nativePtr, int mask);
    @Override
    public void setPrivacy(int privacy_mask) {
        setPrivacy(nativePtr,privacy_mask);
    }

    private native int getPrivacy(long nativePtr);
    @Override
    public int getPrivacy() {
        return getPrivacy(nativePtr);
    }

    private native void setSessionName(long nativePtr, String name);
    @Override
    public void setSessionName(String name) {
        setSessionName(nativePtr,name);
    }

    private native String getSessionName(long nativePtr);
    @Override
    public String getSessionName() {
        return getSessionName(nativePtr);
    }

    private native int[] getSentVideoSize(long nativePtr);
    @Override
    public VideoSize getSentVideoSize() {
        int[] nativeSize = getSentVideoSize(nativePtr);
        VideoSize vSize = new VideoSize();
        vSize.width = nativeSize[0];
        vSize.height = nativeSize[1];
        return vSize;
    }

    private native int[] getReceivedVideoSize(long nativePtr);
    @Override
    public VideoSize getReceivedVideoSize() {
        int[] nativeSize = getReceivedVideoSize(nativePtr);
        VideoSize vSize = new VideoSize();
        vSize.width = nativeSize[0];
        vSize.height = nativeSize[1];
        return vSize;
    }
    private native void enableAudioMulticast(long ptr,boolean yesno);
    @Override
    public void enableAudioMulticast(boolean yesno) {
        enableAudioMulticast(nativePtr,yesno);
    }
    private native boolean audioMulticastEnabled(long ptr);
    @Override
    public boolean audioMulticastEnabled() {
        return audioMulticastEnabled(nativePtr);
    }
    private native void enableVideoMulticast(long ptr,boolean yesno);

    @Override
    public void enableVideoMulticast(boolean yesno) {
        enableVideoMulticast(nativePtr,yesno);
    }
    private native boolean videoMulticastEnabled(long ptr);
    @Override
    public boolean videoMulticastEnabled() {
        return videoMulticastEnabled(nativePtr);
    }

    private native void enableRealTimeText(long nativePtr, boolean yesno);
    @Override
    public void enableRealTimeText(boolean yesno) {
        enableRealTimeText(nativePtr, yesno);
    }

    private native boolean realTimeTextEnabled(long nativePtr);
    @Override
    public boolean realTimeTextEnabled() {
        return realTimeTextEnabled(nativePtr);
    }

    private native int getAudioDirection(long nativePtr);
    @Override
    public MediaDirection getAudioDirection() {
        return MediaDirection.fromInt(getAudioDirection(nativePtr));
    }

    private native int getVideoDirection(long nativePtr);
    @Override
    public MediaDirection getVideoDirection() {
        return MediaDirection.fromInt(getVideoDirection(nativePtr));
    }

    private native void setAudioDirection(long nativePtr, int direction);
    @Override
    public void setAudioDirection(MediaDirection direction) {
        setAudioDirection(nativePtr, direction.mValue);
    }

    private native void setVideoDirection(long nativePtr, int direction);
    @Override
    public void setVideoDirection(MediaDirection direction) {
        setVideoDirection(nativePtr, direction.mValue);
    }
}

你可能感兴趣的:(linphone)