導航:首頁 > 配伺服器 > 伺服器如何搭建視頻通話

伺服器如何搭建視頻通話

發布時間:2023-02-24 12:03:31

1. 區域網內的視頻通話,伺服器如何設定

首先除了具備即時通訊軟體所具備的基礎功能點之外,還必須有可擴展性和可統一性!

可擴展是說具備二次開發的功能,這樣才會更加適合自身的企業網路使用狀況

可統一性是說能作為一個統一通訊平台,集合其他的辦公軟體

舉例:

企業即時通訊軟體Active Messenger其特點:

1)系統提供獨立的企業即時通訊伺服器給企業;

可以在區域網內布置,用戶在不上外網的情況下實現區域網內的交流

若有同事需要異地使用,只需要將即時通訊伺服器的IP地址映射到外網就可以

2)所有的用戶都是由系統管理員按照企業組織架構統一建立的,支持AD域集成;

控制了只有同事或有業務聯系的人員才能登錄企業即時通訊系統

3)所有交流都經過即時通訊伺服器中轉;

這樣可以在伺服器備查歷史消息,企業內部交流需要信息的可追溯性

這樣的架構使得系統具有企業郵箱的大部分功能

4)系統提供與OA、ERP軟體集成的開發介面;

當OA、ERP系統有事務發生時,可以通過AM對相關人員進行提醒

5)其它功能

支持大容量文件及目錄的發送,內網速度可以到6M

支持消息的簽收,跟蹤管理(可以查對方是打開過消息)

支持對離線人員的消息發送(支持帶附件帶目錄,支持對幾千人員的群發)

支持多伺服器互連(可以建立分布式的企業構架)

支持屏幕截取,並進行批註後發送 (有的時候,文字不能表達清楚,必須通過圖片加批註文字才能表達。)

支持語音及視頻通訊

支持事務申請

支持會議功能(就某一主題開個會議,結束後可以產生會議記錄)

支持歷史文檔管理

支持客戶端歷史消息備份管理

除了即時通訊功能外,系統可擴展有用的增值方案;

1、AM簡訊擴展模塊;

2、AM傳真擴展模塊;

3、AM郵件集成模塊;

4、AM網路會議系統(支持多方語音及PPT同步播放)

5、AM企業網路硬碟及文檔管理方案;

2. android 開發中如何實現視頻通話功能 !求大神指點!功能實現的思路,及用到的知識點!!感激不盡!!

/**
* Android視頻聊天
* 1、初始化SDK 2、連接伺服器、 3、用戶登錄;4、進入房間;5、打開本地視頻;6、請求對方視頻
*/
public class VideoChatActivity extends Activity implements AnyChatBaseEvent
{
private AnyChatCoreSDK anychat; // 核心SDK
private SurfaceView remoteSurfaceView; // 對方視頻
private SurfaceView localSurfaceView; // 本地視頻
private ConfigEntity configEntity;
private boolean bSelfVideoOpened = false; // 本地視頻是否已打開
private boolean bOtherVideoOpened = false; // 對方視頻是否已打開
private TimerTask mTimerTask; // 定時器
private Timer mTimer = new Timer(true);
private Handler handler; // 用Handler來不間斷刷新即時視頻
private List<String> userlist = new ArrayList<String>();//保存在線用戶列表
private int userid; // 用戶ID
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_chat);
remoteSurfaceView = (SurfaceView) findViewById(R.id.surface_remote);
localSurfaceView = (SurfaceView) findViewById(R.id.surface_local);
configEntity = ConfigService.LoadConfig(this);//載入視頻通話設置
loginSystem();// 初始化SDK 連接伺服器
mTimerTask = new TimerTask(){
public void run(){
Message mesasge = new Message();
handler.sendMessage(mesasge);
}
};
mTimer.schele(mTimerTask, 1000, 100);
handler = new Handler(){
@Override
public void handleMessage(Message msg){
VideoChat();// 不間斷顯示即時視頻通話畫面
super.handleMessage(msg);
}
};
}
// 初始化SDK 連接伺服器
private void loginSystem(){
if (anychat == null){
anychat = new AnyChatCoreSDK();
anychat.SetBaseEvent(this); // 設置基本事件回調函數
if (configEntity.useARMv6Lib != 0) // 使用ARMv6指令集
anychat.SetSDKOptionInt(AnyChatDefine.
BRAC_SO_CORESDK_USEARMV6LIB, 1);
anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0); // 初始化SDK
}
anychat.Connect("demo.anychat.cn", 8906);// 連接伺服器
}
// 顯示即時視頻通話畫面
public void VideoChat(){
if (!bOtherVideoOpened){
if (anychat.GetCameraState(userid) == 2
&& anychat.GetUserVideoWidth(userid) != 0){
SurfaceHolder holder = remoteSurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(userid),
anychat.GetUserVideoHeight(userid));
Surface s = holder.getSurface(); // 獲得視頻畫面
anychat.SetVideoPos(userid, s, 0, 0, 0, 0); // 調用API顯示視頻畫面
bOtherVideoOpened = true;
}
if (!bSelfVideoOpened){
if (anychat.GetCameraState(-1) == 2
&& anychat.GetUserVideoWidth(-1) != 0){
SurfaceHolder holder = localSurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(-1),
anychat.GetUserVideoHeight(-1));
Surface s = holder.getSurface();
anychat.SetVideoPos(-1, s, 0, 0, 0, 0);
bSelfVideoOpened = true;
}
}
}
public void OnAnyChatConnectMessage(boolean bSuccess){
if (!bSuccess){
Toast.makeText(VideoChatActivity.this, "連接伺服器失敗,自動重連,請稍後...", Toast.LENGTH_SHORT).show();
}
anychat.Login("android", ""); // 伺服器連接成功 用戶登錄
}
public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode){
if (dwErrorCode == 0) {
Toast.makeText(this, "登錄成功!", Toast.LENGTH_SHORT).show();
anychat.EnterRoom(1, ""); // 用戶登錄成功 進入房間
ApplyVideoConfig();
} else {
Toast.makeText(this, "登錄失敗,錯誤代碼:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode){
if (dwErrorCode == 0) { // 進入房間成功 打開本地音視頻
Toast.makeText(this, "進入房間成功", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(-1, 1); // 打開本地視頻
anychat.UserSpeakControl(-1, 1); // 打開本地音頻
} else {
Toast.makeText(this, "進入房間失敗,錯誤代碼:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId){
if (dwRoomId == 1){
int user[] = anychat.GetOnlineUser();
if (user.length != 0){
for (int i = 0; i < user.length; i++){
userlist.add(user[i]+"");
. }
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 請求用戶視頻
anychat.UserSpeakControl(userid, 1); // 請求用戶音頻
}
else {
Toast.makeText(VideoChatActivity.this, "當前沒有在線用戶", Toast.LENGTH_SHORT).show();
}
}
}
public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter){
if (bEnter) {//新用戶進入房間
userlist.add(dwUserId+"");
}
else { //用戶離開房間
if (dwUserId == userid)
{
Toast.makeText(VideoChatActivity.this, "視頻用戶已下線", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(userid, 0);// 關閉用戶視頻
anychat.UserSpeakControl(userid, 0); // 關閉用戶音頻
userlist.remove(userid+""); //移除該用戶
if (userlist.size() != 0)
{
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 請求其他用戶視頻
anychat.UserSpeakControl(userid, 1); // 請求其他用戶音頻
}
}
141. else {
userlist.remove(dwUserId+""); //移除該用戶
}
}
}
public void OnAnyChatLinkCloseMessage(int dwErrorCode){
Toast.makeText(VideoChatActivity.this, "連接關閉,error:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy(){ //程序退出
anychat.LeaveRoom(-1); //離開房間
anychat.Logout(); //注銷登錄
anychat.Release(); //釋放資源
mTimer.cancel();
super.onDestroy();
}
// 根據配置文件配置視頻參數
private void ApplyVideoConfig(){
if (configEntity.configMode == 1) // 自定義視頻參數配置
{
// 設置本地視頻編碼的碼率(如果碼率為0,則表示使用質量優先模式)
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL,configEntity.videoBitrate);
if (configEntity.videoBitrate == 0)
{
// 設置本地視頻編碼的質量
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL,configEntity.videoQuality);
}
// 設置本地視頻編碼的幀率
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL,configEntity.videoFps);
// 設置本地視頻編碼的關鍵幀間隔
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL,configEntity.videoFps * 4);
// 設置本地視頻採集解析度
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL,configEntity.resolution_width);
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL,configEntity.resolution_height);
// 設置視頻編碼預設參數(值越大,編碼質量越高,佔用CPU資源也會越高)
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL,configEntity.videoPreset);
}
// 讓視頻參數生效
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM,configEntity.configMode);
// P2P設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC,configEntity.enableP2P);
// 本地視頻Overlay模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY,configEntity.videoOverlay);
// 迴音消除設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL,configEntity.enableAEC);
// 平台硬體編碼設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC,configEntity.useHWCodec);
// 視頻旋轉模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL,configEntity.videorotatemode);
// 視頻平滑播放模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_STREAM_SMOOTHPLAYMODE,configEntity.smoothPlayMode);
// 視頻採集驅動設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER,configEntity.videoCapDriver);
// 本地視頻採集偏色修正設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA,configEntity.fixcolordeviation);
// 視頻顯示驅動設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL,configEntity.videoShowDriver);
}
}

3. 各位大神用Android Studio開發app上視頻通話功能,應該怎麼做啊,能不能講一下具體的步驟,真的很急啊!

先考慮登錄驗證鑒權這些
首先,需要一個伺服器做數據中轉。你不會用個APP端來做伺服器吧,這是肯定的。這就涉及到了服務端SESSION的控制和數據轉發控制等一系列問題。
其次APP端需要發起建立SOCKET連接的請求。兩個APP都需要先主動建立。發起視頻通話的流程的時候,只是再服務端中建立兩個SOCKET的映射關系。
然後就是APP段調取攝像頭數據和音頻數據轉換為二進制格式實時傳輸到伺服器,由伺服器傳送到另外一端APP對二進制數據進行解碼。圖像和音頻都有很多編碼方式可以自己選擇編解碼的庫。解碼完成後播放音頻和展示圖片到APP容器即可。當然這個工作是兩方APP同時需要做的。
伺服器只需要做好SOCKET的維護和數據轉發就ok,不用編解碼數據,當然也可以編解碼來存放。

4. 如何利用網路視頻伺服器搭建視頻會議

該視頻會議系統利用普通的PC機、標準的視頻採集設備、耳機和麥克風,實現基於Internet或者區域網的虛擬會議。它與傳統的基於硬體的解決方案不同,V2 Conference視頻會議系統是純軟體解決方案,我們無須投入高昂的成本,只要利用現有的區域網絡,就能夠實現高質量、高可靠性的音視頻通訊、協同工作、文檔共享、遠程會議管理等多種會議功能,有效地節約時間和經費,提高企業的工作效率。這對於一些中小型企業尤為適用! 步驟一 設定伺服器,搭建會議室 首先我們要明確的是,伺服器不一定要有音視頻設備,它設定也比較簡單。因為在該平台上,伺服器的功能相當於一個中轉站,其作用是作為區域網內視頻會議的一個「中轉站」,而不是大家通常所了解的向區域網發送視頻的「源頭」。 選定區域網內的某一台電腦作為伺服器,這台電腦的配置相對要求會比較高一點,因為它要負擔整個區域網視頻會議的數據交換。因此建議為PⅢ800/10GB/256MB內存這樣的配置以上。在該電腦上安裝V2 Conference的伺服器端軟體,安裝完成後桌面上會出現一個「會議監控伺服器」的程序圖標。雙擊該圖標即可運行V2 Conference伺服器端程序了。 在V2 Conference的啟動窗口中單擊「啟動伺服器」按鈕,將會彈出「會議管理模式」對話框。為簡單起見,我們選擇「無資料庫管理」,然後在下方的設置面板中選擇好最大視頻數、視頻類型、帶寬、音頻模式等音視頻會議的相關參數後,單擊「OK」按鈕即可啟動視頻伺服器了 提示:單擊V2 Conference伺服器控制面板上的「高級設置」按鈕,可以設定監控伺服器的內部IP和外部IP。

5. Android開發視頻通話怎麼實現

/**
* Android視頻聊天
* 1、初始化SDK 2、連接伺服器、 3、用戶登錄;4、進入房間;5、打開本地視頻;6、請求對方視頻
*/
public class VideoChatActivity extends Activity implements AnyChatBaseEvent
{
private AnyChatCoreSDK anychat; // 核心SDK
private SurfaceView remoteSurfaceView; // 對方視頻
private SurfaceView localSurfaceView; // 本地視頻
private ConfigEntity configEntity;
private boolean bSelfVideoOpened = false; // 本地視頻是否已打開
private boolean bOtherVideoOpened = false; // 對方視頻是否已打開
private TimerTask mTimerTask; // 定時器
private Timer mTimer = new Timer(true);
private Handler handler; // 用Handler來不間斷刷新即時視頻
private List<String> userlist = new ArrayList<String>();//保存在線用戶列表
private int userid; // 用戶ID
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_chat);
remoteSurfaceView = (SurfaceView) findViewById(R.id.surface_remote);
localSurfaceView = (SurfaceView) findViewById(R.id.surface_local);
configEntity = ConfigService.LoadConfig(this);//載入視頻通話設置
loginSystem();// 初始化SDK 連接伺服器
mTimerTask = new TimerTask(){
public void run(){
Message mesasge = new Message();
handler.sendMessage(mesasge);
}
};
mTimer.schele(mTimerTask, 1000, 100);
handler = new Handler(){
@Override
public void handleMessage(Message msg){
VideoChat();// 不間斷顯示即時視頻通話畫面
super.handleMessage(msg);
}
};
}
// 初始化SDK 連接伺服器
private void loginSystem(){
if (anychat == null){
anychat = new AnyChatCoreSDK();
anychat.SetBaseEvent(this); // 設置基本事件回調函數
if (configEntity.useARMv6Lib != 0) // 使用ARMv6指令集
anychat.SetSDKOptionInt(AnyChatDefine.
BRAC_SO_CORESDK_USEARMV6LIB, 1);
anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0); // 初始化SDK
}
anychat.Connect("demo.anychat.cn", 8906);// 連接伺服器
}
// 顯示即時視頻通話畫面
public void VideoChat(){
if (!bOtherVideoOpened){
if (anychat.GetCameraState(userid) == 2
&& anychat.GetUserVideoWidth(userid) != 0){
SurfaceHolder holder = remoteSurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(userid),
anychat.GetUserVideoHeight(userid));
Surface s = holder.getSurface(); // 獲得視頻畫面
anychat.SetVideoPos(userid, s, 0, 0, 0, 0); // 調用API顯示視頻畫面
bOtherVideoOpened = true;
}
if (!bSelfVideoOpened){
if (anychat.GetCameraState(-1) == 2
&& anychat.GetUserVideoWidth(-1) != 0){
SurfaceHolder holder = localSurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(-1),
anychat.GetUserVideoHeight(-1));
Surface s = holder.getSurface();
anychat.SetVideoPos(-1, s, 0, 0, 0, 0);
bSelfVideoOpened = true;
}
}
}
public void OnAnyChatConnectMessage(boolean bSuccess){
if (!bSuccess){
Toast.makeText(VideoChatActivity.this, "連接伺服器失敗,自動重連,請稍後...", Toast.LENGTH_SHORT).show();
}
anychat.Login("android", ""); // 伺服器連接成功 用戶登錄
}
public void OnAnyChatLoginMessage(int dwUserId, int dwErrorCode){
if (dwErrorCode == 0) {
Toast.makeText(this, "登錄成功!", Toast.LENGTH_SHORT).show();
anychat.EnterRoom(1, ""); // 用戶登錄成功 進入房間
ApplyVideoConfig();
} else {
Toast.makeText(this, "登錄失敗,錯誤代碼:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatEnterRoomMessage(int dwRoomId, int dwErrorCode){
if (dwErrorCode == 0) { // 進入房間成功 打開本地音視頻
Toast.makeText(this, "進入房間成功", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(-1, 1); // 打開本地視頻
anychat.UserSpeakControl(-1, 1); // 打開本地音頻
} else {
Toast.makeText(this, "進入房間失敗,錯誤代碼:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomId){
if (dwRoomId == 1){
int user[] = anychat.GetOnlineUser();
if (user.length != 0){
for (int i = 0; i < user.length; i++){
userlist.add(user[i]+"");
. }
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 請求用戶視頻
anychat.UserSpeakControl(userid, 1); // 請求用戶音頻
}
else {
Toast.makeText(VideoChatActivity.this, "當前沒有在線用戶", Toast.LENGTH_SHORT).show();
}
}
}
public void OnAnyChatUserAtRoomMessage(int dwUserId, boolean bEnter){
if (bEnter) {//新用戶進入房間
userlist.add(dwUserId+"");
}
else { //用戶離開房間
if (dwUserId == userid)
{
Toast.makeText(VideoChatActivity.this, "視頻用戶已下線", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(userid, 0);// 關閉用戶視頻
anychat.UserSpeakControl(userid, 0); // 關閉用戶音頻
userlist.remove(userid+""); //移除該用戶
if (userlist.size() != 0)
{
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 請求其他用戶視頻
anychat.UserSpeakControl(userid, 1); // 請求其他用戶音頻
}
}
141. else {
userlist.remove(dwUserId+""); //移除該用戶
}
}
}
public void OnAnyChatLinkCloseMessage(int dwErrorCode){
Toast.makeText(VideoChatActivity.this, "連接關閉,error:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy(){ //程序退出
anychat.LeaveRoom(-1); //離開房間
anychat.Logout(); //注銷登錄
anychat.Release(); //釋放資源
mTimer.cancel();
super.onDestroy();
}
// 根據配置文件配置視頻參數
private void ApplyVideoConfig(){
if (configEntity.configMode == 1) // 自定義視頻參數配置
{
// 設置本地視頻編碼的碼率(如果碼率為0,則表示使用質量優先模式)
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL,configEntity.videoBitrate);
if (configEntity.videoBitrate == 0)
{
// 設置本地視頻編碼的質量
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL,configEntity.videoQuality);
}
// 設置本地視頻編碼的幀率
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL,configEntity.videoFps);
// 設置本地視頻編碼的關鍵幀間隔
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL,configEntity.videoFps * 4);
// 設置本地視頻採集解析度
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL,configEntity.resolution_width);
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL,configEntity.resolution_height);
// 設置視頻編碼預設參數(值越大,編碼質量越高,佔用CPU資源也會越高)
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL,configEntity.videoPreset);
}
// 讓視頻參數生效
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM,configEntity.configMode);
// P2P設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC,configEntity.enableP2P);
// 本地視頻Overlay模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY,configEntity.videoOverlay);
// 迴音消除設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL,configEntity.enableAEC);
// 平台硬體編碼設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC,configEntity.useHWCodec);
// 視頻旋轉模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL,configEntity.videorotatemode);
// 視頻平滑播放模式設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_STREAM_SMOOTHPLAYMODE,configEntity.smoothPlayMode);
// 視頻採集驅動設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER,configEntity.videoCapDriver);
// 本地視頻採集偏色修正設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA,configEntity.fixcolordeviation);
// 視頻顯示驅動設置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL,configEntity.videoShowDriver);
}
}

6. 如何搭建個人視頻點播伺服器

1、點擊開始菜單,選擇控制面板,打開控制面板界面。

閱讀全文

與伺服器如何搭建視頻通話相關的資料

熱點內容
男主被系統控制的小說下載 瀏覽:951
鈦2電影高清完整版 瀏覽:440
linux啟動項目命令 瀏覽:531
乳山迷霧txt全文閱讀全文小說 瀏覽:885
vm同步命令 瀏覽:14
安卓轉移到ios王者榮耀怎麼登 瀏覽:955
工業壓縮機品牌 瀏覽:182
蘋果系統怎麼更改app的圖標 瀏覽:668
泰劇女同電影 瀏覽:435
人造變異女的電影 瀏覽:237
懷舊經典老錄像片 瀏覽:593
和利時功能塊怎麼加密 瀏覽:30
宣萱電影好看 瀏覽:568
韓國純真時代動態圖 瀏覽:100
關於男主有個能操控別人 瀏覽:303
怎麼測試doh加密 瀏覽:210
歐美 小說 圖片 瀏覽:908
西安程序員未來的發展趨勢 瀏覽:173
叫阿能的電影 瀏覽:261
客車購票小程序源碼 瀏覽:645