我正在使用 getUserMedia 函数从网络摄像头录制视频。一切工作正常,除了当我刚刚指定 video: true 约束时它仅以 640x480 分辨率录制。
如果我设置如下约束,我现在可以在笔记本电脑上获得更好的录音质量:
var mediaConstraints = {
audio: true,
video: {
width: { min: 1280 },
height: { min: 720 }
}
};
Run Code Online (Sandbox Code Playgroud)
但是,如果另一台设备的分辨率高于 1280x720,或者甚至更低,该怎么办?
我尝试将 min 设置为非常低,将 max 设置为非常高;但它只是默认为 640x480,或者根本没有给出任何内容。我也尝试设置所需的大小,但正如预期的那样 - 我最终得到了该值。如果我将“期望”设置得非常高(因此它会选择最接近的可用值),那么我最终将一无所获。
那么问题是,如何设置约束以获得相机可以提供的最大分辨率?
我正在创建一个简单的LOB应用程序,它从XML文件加载数据并将其显示在一个列表中,其中包含几个用于编辑的按钮.
在我的第一次尝试中,一切都很好,只是列表在一个长列中向下滚动.我希望数据包装,以便在窗口的底部开始第二列,依此类推 - 如果你调整Window的大小,数据应该相应地调整大小.
首先,我只是将ListBox放在ScrollViewer中.这没有任何区别.
然后,我在ItemTemplate中添加了一个WrapPanel.在这一点上,我横向排了一个长行,但它从未包裹到第二行,尽管我设置了ScrollViewer.HorizontalScrollbar = disabled.
我在各种博客和论坛上搜索过网络,但看不出建议和我的代码之间的区别(包含在下面).任何提示将非常感激.
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My App" Height="300" Width="400"
FocusManager.FocusedElement="{Binding ElementName=eventsList}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Row="0" Grid.Column="0" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ListBox Name="eventsList">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</ScrollViewer>
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed">
<Button Name="action1Button" />
<Button Name="action2Button" />
<Button Name="action3Button" />
</StackPanel>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在ASP.NET中实现DataGrid,并希望实现自定义分页,这样我就不必一次性提供所有数据.我花了几个小时在互联网上进行研究,但没有找到任何有用的东西.
当我查看页面时,我看到网格中的第一组结果,前一个链接被禁用.然而,当我单击下一步时,我再次看到网格的第一页,其中前一个链接被禁用.在调试代码时,我确定永远不会调用MyGrid_PageIndexChanged()事件处理程序.
我在下面提供了简化代码.我已经更改了变量名称和省略方法,专注于数据网格分页问题.
在ASPX文件中:
<asp:DataGrid ID="myGrid" runat="server" GridLines="None" UseAccessibleHeader="true" AutoGenerateColumns="false" AllowPaging="true" AllowCustomPaging="true" PageIndexChanged="MyGrid_PageIndexChanged">
<PagerStyle Mode="NextPrev" NextPageText="Next >" PrevPageText="< Previous" />
<Columns>
<asp:BoundColumn HeaderText="Title" DataField="Name" />
<asp:BoundColumn HeaderText="Date" DataField="Date" />
</Columns>
</asp:DataGrid>
Run Code Online (Sandbox Code Playgroud)
并在CS文件中:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myGrid.PageSize = 20;
myGrid.VirtualItemCount = GetNumItems();
BindMyGrid();
}
}
protected void MyGrid_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{
myGrid.CurrentPageIndex = e.NewPageIndex;
BindMyGrid();
}
private int GetNumItems()
{
return 500;
}
private void BindMyGrid()
{
Data[] array = GetDataFromInternetSomehow();
this.myGrid.DataSource = …Run Code Online (Sandbox Code Playgroud) 我有一个页面,上面有一个表格.表单包含一个文本框和一个提交按钮.
提交表单时,通过单击按钮或按文本框中的Enter键,我想进行查找(在这种情况下,使用Bing Maps对邮政编码进行地理编码),然后像往常一样将表单提交到服务器.
我目前的方法是将提交事件的处理程序添加到一个唯一的表单,然后在我完成时调用submit(),但我无法使其工作,并且无法调试问题:
$(document).ready(function () {
$("form").submit(function (event) {
var postcode = $.trim($("#Postcode").val());
if (postcode.length === 0) {
return false;
}
var baseUrl = "http://dev.virtualearth.net/REST/v1/Locations/UK/";
var apiKey = "myKey";
var url = baseUrl + postcode + "?key=" + apiKey + "&jsonp=?";
$.getJSON(url, function (result) {
if (result.resourceSets[0].estimatedTotal > 0) {
var location = result.resourceSets[0].resources[0].point.coordinates;
$("#latitude").val(location[0]);
$("#longitude").val(location[1]);
$("form").submit();
}
});
});
});
Run Code Online (Sandbox Code Playgroud) 我在整个代码中使用async/await模式.但是,有一个API使用基于事件的异步模式.我已经阅读了MSDN和几个StackOverflow的答案,这样做的方法是使用TaskCompletionSource.
我的代码:
public static Task<string> Process(Stream data)
{
var client = new ServiceClient();
var tcs = new TaskCompletionSource<string>();
client.OnResult += (sender, e) =>
{
tcs.SetResult(e.Result);
};
client.OnError += (sender, e) =>
{
tcs.SetException(new Exception(e.ErrorMessage));
};
client.Send(data);
return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)
并称为:
string result = await Process(data);
Run Code Online (Sandbox Code Playgroud)
或者,用于测试:
string result = Process(data).Result;
Run Code Online (Sandbox Code Playgroud)
该方法总是很快返回,但是没有一个事件被触发.
如果我添加tcs.Task.Await(); 就在return语句之前,它可以工作,但是这并不能提供我想要的异步行为.
我已经比较了我在互联网上看到的各种样本,但没有看到任何差异.
c# asynchronous task-parallel-library async-await taskcompletionsource
使用XCode开发iOS应用程序时,可以使用NSLog调用将信息写入控制台进行调试.在Xamarin.iOS中,可以使用Console.WriteLine完成相同的操作.
在运行应用程序的发布版本时,如果没有附加调试器,这些调用就没有用处.所以我想用预处理器指令排除它们:
#if DEBUG
Console.WriteLine("foo");
#endif
Run Code Online (Sandbox Code Playgroud)
这样调用甚至不存在于发布版本中.我很欣赏这可能是微优化 - 但我很好奇Xamairn是否已经这样做,这使得这不必要?
我正在使用 Application Insights 分析 Azure 应用服务的性能。
我想加入requests和dependencies表,我成功地做到了。但是,有一些行被排除,因为表operation_Id中dependencies有一个奇怪的值。
当我说“一个奇怪的值”时,我的意思是operation_Id有时看起来不为空,但当我打印它们时它显示“无”。不管怎样,这肯定与表中的 ID 不一样functions,因此连接不起作用。
dependencies
| where timestamp > ago(1d) and isnotnull(operation_Id)
| summarize count() by operation_Id
Run Code Online (Sandbox Code Playgroud)
给我们:
建议所有operation_Id值都不为空,但打印为“none”。
javascript ×2
ajax ×1
asp.net ×1
async-await ×1
asynchronous ×1
azure ×1
c# ×1
console ×1
custompaging ×1
data-binding ×1
datagrid ×1
debugging ×1
geocode ×1
getusermedia ×1
html ×1
ios ×1
jquery ×1
listbox ×1
maps ×1
video ×1
wpf ×1
xamarin ×1
xaml ×1