【问题标题】:Silverlight 4 web cam permission on load of User ControlSilverlight 4 网络摄像头权限加载用户控制
【发布时间】:2010-04-19 03:32:07
【问题描述】:

我正在使用 Silverlight 4 访问网络摄像头。当我在按钮单击事件上启动网络摄像头时,一切正常,我得到了许可提示。我希望在加载用户控件时启动网络摄像头,但由于某种原因,当我在 Loaded 事件上运行相同的代码时,执行以下代码时没有得到提示:'

CaptureDeviceConfiguration.RequestDeviceAccess()

有人可以解决这个问题吗?

【问题讨论】:

  • 您找到解决方案了吗?也许是一个 js 解决方法?

标签: silverlight webcam


【解决方案1】:

我找到了解决此问题的方法。我会自动单击在控件的 Loaded 事件上启动网络摄像头流式传输的按钮。

ButtonAutomationPeer peer = new ButtonAutomationPeer(btnStartWebcam);
IInvokeProvider invokeProv = 
    peer.GetPattern(PatternInterface.Invoke) 
    as IInvokeProvider;
invokeProv.Invoke();

这对我有用,因为我不介意在 UI 上有一个按钮。但我想你可以创建一个虚拟的并在必要时隐藏它。

【讨论】:

    【解决方案2】:

    访问本地设备的安全性非常严格。开始捕获必须在用户操作之前。

    您必须将其移至 Click 事件,而不是从加载的事件开始捕获。

    后面的代码:

    public void StartCam()
    {
      VideoCaptureDevice dev = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
      if(CaptureDeviceConfiguration.RequestDeviceAccess() &&
         CaptureDeviceConfiguration.AllowedDeviceAccess)
      {
        CaptureSource capture = new CaptureSource();
        capture.VideoCaptureDevice = dev;
    
        VideoBrush videoBrush = new VideoBrush();
        videoBrush.SetSource(capture);
    
        capture.Start();
    
        WebCamRectangle.Fill = videoBrush;
      }
    }
    
    private void button1_Click(object sender, RoutedEventArgs e)
    {
      StartCam();
    }
    

    Xaml:

    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="49*" />
            <RowDefinition Height="251*" />
        </Grid.RowDefinitions>
        <Rectangle Name="WebCamRectangle" 
                   Stroke="Black" StrokeThickness="1" Grid.Row="1" />
        <Button Content="Start" Height="25" HorizontalAlignment="Left" 
                Margin="12,12,0,0" Name="button1" VerticalAlignment="Top"
                Width="135" Click="button1_Click" />
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 2011-02-10
      • 2020-08-13
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多