android移動視頻會議系統開發

來源:互聯網
上載者:User

標籤:移動音視頻開發   即時通訊   移動視頻會議   

到新公司上班,接收的第一個項目是視頻會議系統,基於AnyChat進行二次開發,在官網下載了demo瞭解後,發現缺少了一個傳送檔案功能,所以自己在原有的demo進行修改,增加了一個傳送檔案功能。

AnyChat具有緩衝區及檔案傳輸功能,檔案傳輸API介面:BRAC_TransFile,A、B兩使用者登入伺服器成功之後,便可使用檔案傳輸API介面傳送檔案,當A使用API介面:BRAC_TransFile向B傳送檔案時,B收到檔案後,將觸發B的回呼函數:檔案傳輸回呼函數。

傳送檔案介面說明:

int TransFile(int userid, String filepath, int wparam, int lparam,int flags, AnyChatOutParam outParam);

功能:傳送檔案給指定使用者

傳回值:0表示函數調用成功,否則為出錯代碼

參數:

userid: 目標使用者編號,只針對某一個使用者,不能為-1(所有人)

filepath: 本地檔案名稱,含路徑

wParam: 附帶參數1,便於上層應用擴充

lParam: 附帶參數2

dwFlags: 特殊功能標誌,參考:“TransBufferEx”方法

outParam: 若函數調用成功,則核心通過該參數輸出任務ID

在使用中,附帶參數以及特殊功能標識是保留參數,不需要用到,賦值為0就可以了。一開始在設定outParam參數時設定為null,程式發生異常,查閱官方文檔後發現,當函數調用成功,核心會通過outParam的SetIntValue方法設定任務ID(TaskId)。

B使用者要實現接收檔案傳輸回呼函數需要做兩個工作。

1、在需要接收的類實現AnyChatTransDataEvent介面

2、設定回調接收函數SetTransDataEvent

(註:AnyChatTransDataEvent和SetTransDataEvent是由AnyChat提供的api)

檔案傳輸回呼函數說明:

public void OnAnyChatTransFile(int dwUserid, String FileName,String TempFilePath, int dwFileLength, int wParam, int lParam, int dwTaskId);

參數:

dwUserid: 使用者ID,指示發送使用者

FileName: 檔案名稱(含副檔名,不含路徑)

TempFilePath: 接收完成後,SDK儲存在本地的臨時檔案(包含完整路徑)

dwFileLength: 檔案總長度

wParam:

lParam:

dwTaskId: 該檔案所對應的任務編號

主要代碼如下,注釋的也比較清楚。詳細的可參考《AnyChat for Android SDK開發手冊》。(AnyChat for Android SDK:http://www.anychat.cn/download.html)

RoomActivity.java

在傳輸過程中還可以通過QueryTransTaskInfo介面查詢傳輸任務相關資訊,需要傳人使用者id以及任務id等參數。

查詢傳輸任務相關資訊介面說明:

INT QueryTransTaskInfo(INT Userid, INT TaskId,int infoname, AnyChatOutParam outParam);

功能:查詢與傳輸任務相關的資訊,如傳輸進度、傳輸狀態、傳輸碼率等

傳回值:0表示查詢成功,否則為出錯代碼

參數:

dwUserid:任務發起者使用者編號(並非傳輸目標使用者編號)

dwTaskId:需要查詢的任務編號

infoname 需要查詢的資訊代碼(見備忘附表)

outParam:若函數調用成功,則核心通過該參數輸出查詢結果

anychat.QueryTransTaskInfo(dwUserId,taskId,AnyChatDefine.BRAC_TRANSTASK_STATUS, outParam);

AnyChatDefine.BRAC_TRANSTASK_STATUS是一個常量值為3,用於查詢任務目前狀態,通過outParam.GetIntValue()取得任務狀態值,2為傳輸狀態,3為完成狀態,

詳細的可參考《AnyChat for Android SDK開發手冊》

本文出自 “音視頻技術” 部落格,請務必保留此出處http://2343338.blog.51cto.com/2333338/1578955

android移動視頻會議系統開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.