c#
VB
c++
公共保龄球HasDialog (
LiveStreamDlg对话框
)
公共函数HasDialog (_
按值传递对话框作为LiveStreamDlg_
)作为布尔
公共:
保龄球HasDialog (
LiveStreamDlg对话框
)
对话框
一个LiveStreamDlg对话框。
True表示该对话框可用。否则,该值为false。
您必须锁定捕获设备LockDevices在调用此函数之前。
使用Leadtools;
使用Leadtools.MediaStreaming;
公共Server _server =零;
公共保龄球_result =假;
LiveStreamDevConfig devconfig;
公共类DesktopWin: System.Windows.Forms.IWin32Window
{
公共DesktopWin ()
{
}
公共IntPtr处理
{
得到{返回IntPtr.Zero;}
}
}
公共无效CreateOrReplaceLiveStreamExample ()
{
试一试
{
intStreamIndex = 0;
字符串strPath =“生活/ Stream1”;//直播的路径查找
//视频设备在我的系统上的名称(LEAD RTSP源)
字符串strVideoDevice =“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”;
//系统上的音频设备名称(麦克风(HD Pro Webcam C920))
字符串strAudioDevice =“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \ \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”;
//创建server对象的实例
_server =新Leadtools.MediaStreaming.Server ();
//获取一个实时流的副本
Streams = _server.GetLiveStreams();
流媒体=零;
//查找已有的流
为(StreamIndex = 0;StreamIndex < Streams.Count;StreamIndex + +)
{
stream = Streams.GetLiveStream(StreamIndex);
如果(流。Path == strPath)
打破;
stream.Dispose ();
流=零;
}
如果(流= =零)
{
//创建一个新流
StreamIndex = -1;
stream = Streams.CreateLiveStream();
}
//设置流路径
流。路径= strPath;
//设置重新压缩,如果你想使用设备内置的压缩,将此更改为true
流。UseDeviceEncoding =假;
//选择视频设备
Leadtools.MediaStreaming.Devices videodevices;
videodevices = stream.VideoDevices;
int指数= -1;
index = videodevices.IndexOf(strVideoDevice);
videodevices。选择=索引;
//选择音频设备
Leadtools.MediaStreaming.Devices audiodevices;
audiodevices = stream.AudioDevices;
指数= -1;
index = audiodevices.IndexOf(strAudioDevice);
audiodevices。选择=索引;
/**其他选择方法
如果(索引>= 0)
{
Leadtools.MediaStreaming.Device装置;
Device = audiodevices.[index];
设备。选择=真正的;
}
其他的
{
audiodevices。选择= -1;
}
* * /
//锁定设备,这样我们就可以编辑它们的属性
devconfig = stream.DeviceConfig;
devconfig.LockDevices ();
DesktopWin win =新DesktopWin ();
如果可用,显示主视频设备属性页
如果(devconfig.HasDialog (LiveStreamDlg.VideoDevice))
{
devconfig.ShowDialog (LiveStreamDlg。VideoDevice,赢得);
}
如果可用,显示主音频设备属性页
如果(devconfig.HasDialog (LiveStreamDlg.AudioDevice))
{
devconfig.ShowDialog (LiveStreamDlg。AudioDevice,赢得);
}
//设置输出视频
如果(devconfig.IsVideoEncoded)//视频已经被编码,视频输出设置将被忽略
{
流。UseVideoInputSize =真正的;
//如果UseVideoInputSize为true,那么width和height将被忽略
流。VideoWidth = 320;
流。VideoHeight = 240;
流。UseVideoInputFrameRate =真正的;
//如果UseVideoInputFrameRate为true,则帧速率被忽略
流。VideoFrameRate = 29.97;
流。VideoBitRate = 700000;
流。QSVAcceleration =真正的;
流。CUDAAcceleration =真正的;
}
//设置输出音频
如果(devconfig.IsAudioEncoded)//音频已经被编码,音频输出设置被忽略
{
intnCount = 0;
leadtools . mediastream . audiotypes =零;
audiotypes = stream.AudioTypes;
nCount = audiotypes.Count;
为(指数= 0;索引< nCount;指数+ +)
{
Leadtools.MediaStreaming.AudioType audiotype = audiotypes[index];
如果(audiotype。通道== 2 && audiotype。BitRate == 192000 && audiotype。SampleRate == 44100)
{
audiotype。选择=真正的;
//选择的替代方法
/ / audiotypes。选择=索引;
打破;
}
}
}
//设置输出片段大小
流。MinimumFragmentDuration = 2.0;
//添加或替换流
如果(StreamIndex < 0)
Streams.AddLiveStream(流);
其他的
流。SetLiveStream (StreamIndex流);
_server.SetLiveStreams(流);
如果(devconfig ! =零)
devconfig.UnlockDevices ();
_result =真正的;
}
抓(异常)
{
如果(devconfig ! =零)
devconfig.UnlockDevices ();
_result =假;
}
}
进口Leadtools
进口Leadtools。MediaStreaming
公共_server作为服务器=没有什么
公共_result作为布尔=假
私人devconfig作为LiveStreamDevConfig
公共类DesktopWin
实现了System.Windows.Forms.IWin32Window
公共子新()
结束子
公共只读的财产处理()作为IntPtr实现了IWin32Window。处理
得到
返回System.IntPtr.Zero
结束得到
结束财产
结束类
公共子CreateOrReplaceLiveStreamExample ()
试一试
昏暗的StreamCount作为整数= 0
昏暗的StreamIndex作为整数= 0
昏暗的strPath作为字符串=“生活/ Stream1”直播的寻找之路
视频设备在我的系统上的名称(LEAD RTSP源)
昏暗的strVideoDevice作为字符串=“@device:西南:{083863 f1 - 70 - de - 11 - d0 bd40 - 00 - a0c911ce86} \ {e2b7de48 - 38 - c5 - 11 - d5 - 91 - f6 - 00104 - bdb8ff9}”
音频设备在我系统上的名称(麦克风(HD Pro Webcam C920))
昏暗的strAudioDevice作为字符串=“@device:厘米:{33 d9a762 - 90 - c8 - 11 - d0 bd43 - 00 - a0c911ce86} \波:{9 d2fbf73 - d543 - 44 - da - 8846 ae780ee65484}”
'创建服务器对象的实例
_server =新Leadtools.MediaStreaming.Server ()
'获取一个实时流的副本
昏暗的流作为LiveStreams = _server.GetLiveStreams()
昏暗的流作为liverstream =没有什么
'搜索具有相同路径的现有流
StreamCount =流。数
StreamIndex = 0
做而StreamIndex < StreamCount
stream = Streams.GetLiveStream(StreamIndex)
如果流。Path = strPath然后
退出做
结束如果
stream.Dispose ()
流=没有什么
StreamIndex += 1
循环
如果流是没有什么然后
'创建一个新流
StreamIndex = -1
stream = Streams.CreateLiveStream()
结束如果
'设置流路径
流。Path = strPath
'设置来重新压缩,如果你想使用设备内置的压缩,将此更改为true
流。UseDeviceEncoding =假
'选择视频设备
昏暗的videodevices作为Leadtools.MediaStreaming.Devices
视频设备=流。VideoDevices
昏暗的指数作为整数= 1
index = videodevices.IndexOf(strVideoDevice)
videodevices。选择=索引
'选择音频设备
昏暗的audiodevices作为Leadtools.MediaStreaming.Devices
Audiodevices =流。AudioDevices
指数= -1
索引= audiodevices.IndexOf(strAudioDevice)
audiodevices。选择=索引
“另一种选择方法
如果索引>= 0那么
“Dim device As Leadtools.MediaStreaming.Device
'device = audiodevices(索引)
的设备。选中= True
其他的
“audiodevices。选择= -1
“如果终结
’锁定设备,这样我们就可以编辑它们的属性
Devconfig = stream。DeviceConfig
devconfig.LockDevices ()
昏暗的赢得作为DesktopWin =新DesktopWin ()
'显示主视频设备属性页(如果可用)
如果devconfig.HasDialog (LiveStreamDlg.VideoDevice)然后
devconfig.ShowDialog (LiveStreamDlg。VideoDevice赢)
结束如果
'显示主音频设备属性页(如果可用)
如果devconfig.HasDialog (LiveStreamDlg.AudioDevice)然后
devconfig.ShowDialog (LiveStreamDlg。AudioDevice赢)
结束如果
'设置输出视频
如果devconfig。是VideoEncoded然后'视频已经编码,视频输出设置被忽略
流。UseVideoInputSize =真正的
'如果UseVideoInputSize为true,那么宽度和高度将被忽略
流。VideoWidth = 320
流。VideoHeight = 240
流。UseVideoInputFrameRate =真正的
'如果UseVideoInputFrameRate为true,那么帧速率将被忽略
流。VideoFrameRate = 29.97
流。VideoBitRate = 700000
流。QSVAcceleration =真正的
流。CUDAAcceleration =真正的
结束如果
'设置输出音频
如果devconfig。是一个udioEncoded然后音频已经被编码,音频输出设置被忽略
昏暗的nCount作为整数= 0
昏暗的audiotypes作为Leadtools.MediaStreaming.AudioTypes =没有什么
Audiotypes =流。AudioTypes
nCount = audiotypes。数
指数= 0
做而index < nCount
昏暗的audiotype作为mediastream . audiotype = audiotypes(索引)
如果audiotype。通道= 2需要说明audiotype。BitRate = 192000需要说明audiotype。SampleRate = 44100然后
audiotype。选择=真正的
另一种选择方法
“audiotypes。选择=索引
退出做
结束如果
指数+= 1
循环
结束如果
'设置输出片段大小
流。MinimumFragmentDuration = 2.0
'添加或替换流
如果StreamIndex < 0然后
Streams.AddLiveStream(流)
其他的
流。SetLiveStream (StreamIndex流)
结束如果
_server.SetLiveStreams(流)
如果不devconfig是没有什么然后
devconfig.UnlockDevices ()
结束如果
_result =真正的
抓e1作为异常
如果不devconfig是没有什么然后
devconfig.UnlockDevices ()
结束如果
_result =假
结束试一试
结束子
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。