影音播放

功能简介:
把本地的一个视频文件播放给房间内其他用户观看,播放进度完全由播放端控制。
影音播放功能介绍分为播放端和观看端两部分。

注意:一个房间中同一时间只支持进行一个影音播放。支持的影音文件格式有: avi、mov、rmvb、rm、flv、mp4、3gp。


播放端:

  1. 创建影音播放组件
  2. 开始播放并观看影音
  3. 设置播放进度
  4. 暂停、停止播放

观看端:

  1. 创建影音播放组件
  2. 观看影音
  3. 影音停止播放通知

两端通用的功能:

  1. 文件列表、播放信息、播放音量

播放端

1.创建影音播放组件

//首先要创建影音播放显示控件
var g_mediaObj =  null;   //声明影音播放控件变量

//创建影音播放控件对象
if(g_mediaObj == null){
    g_mediaObj =  CRVideo_CreatMediaObj();
    g_mediaObj.id("mediaObj");
     //为控件添加父元素div(例如:其id为mediaContainer), 后面需要布局 、显示、隐藏影音播放控件时直接操作此父元素div
    $("#mediaContainer").append(g_mediaObj.handler());
}

相关API请参考:

2.开始播放并观看影音

每次只能播放一个视频,停止正在播放的视频才能播放下一个视频。通过设置播放配置,还可以控制房间内其他人看到的效果。

  • 接口调用:
/*
*开始播放影音分为2步:
*/
// 1.配置影音播放参数 
var cfg = {};
cfg.sizeType = 13;      //指1920*1080, 最大码率:2mbps。详见 VIDEO_SHOW_SIZE
cfg.fps = 24;           //帧率
cfg.qp_min = 22;        
cfg.qp_max = 36;        //流畅优先
cfg.wh_rate = 0;        //宽高比, 0表示16:9
CRVideo_SetMediacfg(cfg)

//2.开始播放影音
CRVideo_StartPlayMedia("D:/1.mp4",0)

  • 观看影音需要监听以下的回调通知:
//观看端和播放端都会收到开始播放影音的通知。 此时显示影音播放组件,即可观看影音
CRVideo_NotifyMediaStart.callback = function(userid){
	$("#mediaContainer").css({"display":"block","left":"72px","top":"7px","width":"544px","height":"306px"})
    g_mediaObj.width(544);
    g_mediaObj.height(306);
								
}

相关API请参考:

相关结构定义请参考:

3.设置播放进度

可以通过拖动播放组件上的工具条来调整播放进度,也可以用代码来设置播放进度。

  • 调用接口:
// 设置播放进度,单位:毫秒.例如:设置到2秒处.  
CRVideo_SetMediaplaypos(2000)

相关API请参考:

4.暂停、停止播放

  • 调用接口:
// 暂停或恢复播放影音
CRVideo_PausePlayMedia(true);  // ture为暂停,false为恢复

//停止播放影音
CRVideo_StopPlayMedia()
  • 回调通知:

注意:主动调用CRVideo_StopPlayMedia停止播放,或者影音文件播放到结尾,都会触发事件CRVideo_NotifyMediaStop,房间内所有人都会收到。

//媒体暂停播放通知
CRVideo_NotifyMediaPause.callback = function(userid,pause){

}
//影音停止播放通知,观看端和播放端都会收到此通知。reason 为停止原因,详见参考CRVideo_MEDIA_STOP_REASON
CRVideo_NotifyMediaStop.callback = function(userid, reason)
{
    //此时可以隐藏影音显示组件
    $("#mediaContainer").hide();
}

相关API请参考:

相关结构定义请参考:

观看端:

1.创建影音播放组件

//首先要创建影音播放显示控件
var g_mediaObj =  null;   //声明影音播放控件变量

//创建影音播放控件对象
if(g_mediaObj == null){
    g_mediaObj =  CRVideo_CreatMediaObj();
    g_mediaObj.id("mediaObj");
     //为控件添加父元素div(例如:其id为mediaContainer), 后面需要布局 、显示、隐藏影音播放控件时直接操作此父元素div
    $("#mediaContainer").append(g_mediaObj.handler());
}

相关API请参考:

2.观看影音

//观看端和播放端都会收到开始播放影音的通知。 此时显示影音播放组件,即可观看影音
CRVideo_NotifyMediaStart.callback = function(userid){
	$("#mediaContainer").css({"display":"block","left":"72px","top":"7px","width":"544px","height":"306px"})
    g_mediaObj.width(544);
    g_mediaObj.height(306);
								
}

相关API请参考:

3.影音停止播放通知

//影音停止播放通知,观看端和播放端都会收到此通知。reason 为停止原因,详见参考CRVideo_MEDIA_STOP_REASON
CRVideo_NotifyMediaStop.callback = function(userid, reason)
{
    //此时可以隐藏影音显示组件
    $("#mediaContainer").hide();
}

两端通用的功能:

文件列表、播放信息、播放音量

  • 调用接口:
// 取得播放路径下的所有可播放文件
var allFilesInMediaPaths = CRVideo_GetAllFilesInMediaPath()

// 取得影音文件信息
var mediaInfo =  CRVideo_Getmediainfo(UID)

//设置本地扬声器音量,0~255,值越大,音量越大
var setRst = CRVideo_SetSpeakerVolume(100)

相关API请参考:

相关结构定义请参考: