### 媒體播放
媒體播放是雙錄中的一個重要功能。AnyChat提供了媒體文件及網絡流媒體播放能力,接口定義請參考:[增加媒體文件及網絡流媒體播放能力](http://bbs.anychat.cn/forum.php?mod=viewthread&tid=2934)
#### 接口及接口參數定義
```
// 流媒體播放初始化接口
function BRAC_StreamPlayInit(lpTaskGuid, lpStreamPath, dwFlags, lpStrParam)
// 流媒體播放控制接口
function BRAC_StreamPlayControl(lpTaskGuid, dwCtrlCode, dwParam, dwFlags, lpStrParam)
// 設置流媒體播放視頻顯示位置接口
function BRAC_StreamPlaySetVideoPos(lpTaskGuid, parentobj, id)
// 流媒體播放獲取參數信息接口
function BRAC_StreamPlayGetInfo(lpTaskGuid, dwInfoName)
// 流媒體播放釋放資源接口
function BRAC_StreamPlayDestroy(lpTaskGuid, dwFlags)
// 媒體播放標志定義(API:BRAC_StreamPlayInit 傳入參數)
var ANYCHAT_STREAMPLAY_FLAGS_REPLACEAUDIOINPUT = 1; // 播放音頻流代替本地音頻輸入(Mic)
var ANYCHAT_STREAMPLAY_FLAGS_REPLACEVIDEOINPUT = 2; // 播放視頻流代替本地視頻輸入(Camera)
// 媒體播放控制類型定義(API:BRAC_StreamPlayControl 傳入參數)
var ANYCHAT_STREAMPLAY_CTRL_START = 1; // 開始播放
var ANYCHAT_STREAMPLAY_CTRL_PAUSE = 2; // 暫停播放
var ANYCHAT_STREAMPLAY_CTRL_STOP = 3; // 停止播放
var ANYCHAT_STREAMPLAY_CTRL_SEEK = 4; // 位置拖動
var ANYCHAT_STREAMPLAY_CTRL_SPEEDCTRL = 5; // 速度調整
var ANYCHAT_STREAMPLAY_CTRL_OPENLOOP = 6; // 打開循環播放
var ANYCHAT_STREAMPLAY_CTRL_CLOSELOOP = 7; // 關閉循環播放
// 媒體播放信息類型定義(API:BRAC_StreamPlayGetInfo 傳入參數)
var ANYCHAT_STREAMPLAY_INFO_JSONVALUE = 1; // 包含所有播放信息的Json字符串
```
媒體播放接口主要調用順序:
1. 媒體播放初始化
2. 媒體播放控制
3. 設置媒體播放區域
4. 獲取媒體播放參數信息(可選)
5. 媒體播放釋放資源
#### 媒體播放初始化
```
// 獲取TaskGuid
var taskGuID = BRAC_GetSDKOptionString(BRAC_SO_CORESDK_NEWGUID);
// 設置初始化媒體標志,如果音視頻都需要,則把兩個加起來傳入
var streamPlayFlag = ANYCHAT_STREAMPLAY_FLAGS_REPLACEAUDIOINPUT;
// 設置新插入的流為5號流(其實插視頻才需要用到,這里不需要用到)
var strParamJson = {
streamindex: 5
}
BRAC_StreamPlayInit(taskGuID, mediaUrl, streamPlayFlag, JSON.stringify(strParamJson));
```
#### 媒體播放控制
```
BRAC_StreamPlayControl(taskGuID, ANYCHAT_STREAMPLAY_CTRL_START, 0, 0, '');
```
#### 設置媒體播放區域
```
BRAC_StreamPlaySetVideoPos(taskGuID ,div_id, "object_id");
// div_id:此處是指要指定到某個div來播放,需要傳入DOM對象
// object_id:此處是指生成的播放插件id,傳入字符串
```
#### 獲取媒體播放參數信息(可選)
```
var result = BRAC_StreamPlayGetInfo(taskGuID, ANYCHAT_STREAMPLAY_INFO_JSONVALUE);
//返回json 詳情
{
"audiobitrate": 256,
"audiocodec": 23,
"audioduration": 45540,
"bitspersample": 16,
"channels": 1,
"errorcode": 0,
"filebitrate": 256,
"fileduration": 45540,//媒體總時間
"filename": "2.mp3",
"playspeed": 1,
"playstatus": 0,
"playtime": 0, //播放到進度時間
"samplespersec": 16000,
"taskguid": "E444CCD1-4D27-48FE-A9D5-BD0074A0B557"
}
```
#### 媒體播放釋放資源
```
BRAC_StreamPlayDestroy(taskGuID, 0);
```