### 媒体播放
媒体播放是双录中的一个重要功能。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);
```