通过API可实现多种类型的内容共享,包括:
除了基础的内容共享,通过SDK还可以实现电子白板、内容批注等高级功能。开发者可通过各平台高级功能列表 查看详情。共享内容的状态变更将通过事件回调进行通知。
// 开启内容共享 方法 withDesktopAudio true同时共享音频
void StartContentSharing(bool withDesktopAudio);
// 停止内容共享
void StopContentSharing()
//设置不忽略的窗口句柄
void SetNotIgnoreCaptureWnd(IntPtr hwnd);
// 使能区域共享 enable true能区域共享,false不能区域共享
void EnableRegionalCapture(bool enable);
// 更新共享区域
void UpdateRegionalCaptureArea(System.Drawing.Rectangle rc);
//流畅模式设置 true流畅模式
void EnableFluentMode(bool enable)
通过INemoSDKCallbacks.OnContentState回调内容共享状态;
//内容共享状态 2.29 3.4
public enum SDKContentState {
/*空闲*/
Idle,
/*共享中*/
Sending,
/*接收中*/
Receiving,
/*发送带宽不足,可以提示用户关闭共享*/
NoBandwidth,
Error
}
//内容共享状态 3.3
public enum SDKShareState {
/*空闲*/
Idle,
/*共享中*/
Sending,
/*接收中*/
Receiving,
/*发送带宽不足,可以提示用户关闭共享*/
NoBandwidth,
Error
}
//分享app捕获状态发生变化
//isClosed:正在分享的应用被关闭
//isOccluded:正在分享的应用被遮挡
//isPaused:暂停分享状态
void OnAppWindowCaptureState(bool isClosed, bool isOccluded, bool isPaused)
//返回内容共享状态
void OnContentState(SDKContentState state);
/// <summary>
/// 开启媒体文件共享
/// </summary>
/// <param name="filePath">媒体文件全路径</param>
/// <param name="enableAnnotation">是否可标志</param>
void StartMediaFileSharing(string filePath, bool enableAnnotation = true);
/// <summary>
/// 停止媒体文件共享
/// </summary>
void StopMediaFileSharing();
/// <summary>
/// 媒体文件初始化设置
/// </summary>
/// <param name="fileName">文件路径</param>
/// <param name="volume">音量</param>
void MediaFilePrepare(string fileName, float volume);
/// <summary>
/// 开始分享
/// </summary>
void MediaFileStart();
/// <summary>
/// 暂停分享
/// </summary>
void MediaFilePause();
/// <summary>
/// 停止分享
/// </summary>
void MediaFileStop();
/// <summary>
/// 设置指定时间
/// </summary>
/// <param name="position"></param>
void MediaFileSeek(Int64 position);
/// <summary>
/// 设置分享时的媒体音量
/// </summary>
/// <param name="volume">音量 0.0 ~ 1.0</param>
void MediaFileAdjustVolume(float volume);
/// <summary>
/// 释放媒体文件共享资源
/// </summary>
void MediaFileRelease();
/// <summary>
/// 获取媒体显示控件
/// </summary>
/// <returns></returns>
FrameworkElement GetVideoElement4MediaFile();
/// <summary>
/// 获取媒体文件信息
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
SDKMediaFileInfo GetMediaFileInfo(string fileName);
通过INemoSDKCallbacks回调媒体文件分享的事件 状态 及媒体信息等,回调方法:
//返回媒体文件状态
void OnMediaFileState(SDKShareState state);
//返回媒体文件事件
void OnMediaFileEvent(SDKMediaFileEvent fileState);