影音播放

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

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


播放端:

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

观看端:

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

播放端

1.创建影音播放组件

//创建影音播放显示控件

<!--xaml文件中:创建一个Grid-->
<Grid Name="grid_videos" HorizontalAlignment="Center" VerticalAlignment="Center" Background="LightGray">
</Grid>
//创建视频控件对象,添加到grid_videos内
for(int i = 0; i < 2; i ++){
   WindowsFormsHost host = new WindowsFormsHost();
   //axVideoUI根据实际布局来创建对应的个数(此处只有1个axVdieoUI对象)
   host.child = axVideoUI;
   //默认隐藏,布局后再显示
   host.Visibility = Visibility.collapsed;
   host.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
   host.VerticalAlignment = VerticalAlignment.Stretch;
   host.Margin = new Thickness(2, 2, 2, 2);
   //将控件添加到grid里面
   grid_videos.Children.Add(host);
}

2.开始播放并观看影音

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

  • 接口调用:
// 配置影音播放参数1920*1080,帧率24
string videoCfg = "[{\"width\":1920, \"height\":1080, \"fps\":24}]";
axVideoSDK.setMediaCfg(videoCfg)
//开始播放影音
axVideoSDK.startPlayMedia("D:/1.mp4",0)

  • 观看影音需要监听以下的回调通知:
//观看端和播放端都会收到开始播放影音的通知,此时显示影音播放组件,即可观看影音
void notifyMediaStart(string UserID){
  ...
}

相关API请参考:

3.设置播放进度

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

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

相关API请参考:

4.暂停、停止播放

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

//停止播放影音
axVideoSDK.stopPlayMedia()
  • 回调通知:

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

//媒体暂停播放通知
void notifyMediaPause(string userid, bool pause){
  ...
}

//影音停止播放通知,观看端和播放端都会收到此通知。reason 为停止原因,详见参考CRVideo_MEDIA_STOP_REASON
void notifyMediaStop(string userid, int reason)
{
    //此时可以隐藏影音显示组件
}

相关API请参考:

收看端:

1.创建影音播放组件

//创建影音播放显示控件
```xml
<!--xaml文件中:创建一个Grid-->
<Grid Name="grid_videos" HorizontalAlignment="Center" VerticalAlignment="Center" Background="LightGray">
</Grid>

//创建视频控件对象,添加到grid_videos内
WindowsFormsHost host = new WindowsFormsHost();
//axVideoUI根据实际布局来创建对应的个数(此处只有1个axVdieoUI对象)
host.child = axVideoUI;
//先默认隐藏,布局后再显示
host.Visibility = Visibility.collapsed;
host.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
host.VerticalAlignment = VerticalAlignment.Stretch;
host.Margin = new Thickness(2, 2, 2, 2);
//将控件添加到grid里面
grid_videos.Children.Add(host);

2.观看影音

观看端收到开始播放影音的通知后显示影音播放组件,即可观看影音。
  • 回调通知:
//
void notifyMediaStart(string userid){
}

相关API请参考:

3.影音停止播放通知

//影音停止播放通知,观看端和播放端都会收到此通知。reason 为停止原因,详见参考CRVideo_MEDIA_STOP_REASON
void notifyMediaStop(string userid, int reason)
{
    //此时可以隐藏影音显示组件
}

相关API请参考: