我正在使用Windows Phone 8.1(RT)我使用MediaCapture拍摄照片(请记住,对预览照片不感兴趣)。 我使用了下面的代码,但是图片的质量很糟糕,只有在照片中看到了照亮光线的部分。
{
"contents": [
{
"type": "image",
"data": {
"attachment": "picurl",
"width": 600,
"height": 398
}
},
{
"type": "text",
"data": "something like xxx"
}
]
感谢您的帮助。
答案 0 :(得分:4)
看起来您正在配置MediaCapture以为您提供“预览质量”照片。这样做:
await captureManager.InitializeAsync(new MediaCaptureInitializationSettings
{
StreamingCaptureMode = StreamingCaptureMode.Video,
PhotoCaptureSource = PhotoCaptureSource.Photo, // I believe your bug was here
AudioDeviceId = string.Empty,
VideoDeviceId = cameraID.Id
});
或者实际上,只需尝试大多数属性的默认值,并且只设置VideoDeviceId来选择相机。它应该有助于缩小问题范围。
至于设置更高的照片捕获分辨率,这样的事情可能会起作用:
private async Task SetPhotoResolution()
{
var resolutions = _captureManager.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo).Select(x => x as VideoEncodingProperties);
var maxRes = resolutions.OrderByDescending(x => x.Height * x.Width).FirstOrDefault();
await _captureManager.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, maxRes);
}
请确保照片分辨率的宽高比与预览分辨率的宽高比相匹配,否则您可能会在某些手机的边缘附近出现一些条带。
另外,我测试此功能的手机仅返回VideoEncodingProperties
来自GetAvailableMediaStreamProperties
信道的MediaStreamType.Photo
电话的NV12 var gstock = ["EPA:PIG","LON:AHT","NYSE:URI"];
$(document).ready(function () {
for (var i = 0; i < gstock.length; i++) {
$.getJSON("https://finance.google.com/finance/info?client=ig&q="+gstock[0]+"&callback=?", function (response) {
var stockInfo1 = response[0];
var stockString1 = '<div class="stockWrapper">HAULOTTE:';
var stockName1 = stockInfo1.t;
stockString1 += '<span class="stockSymbol "> ' + stockInfo1.t + ' </span>';
stockString1 += '<span class="stockPrice "> ' + stockInfo1.l + '</span>';
stockString1 += '<span class="stockChange "> ' + stockInfo1.c + '</span>';
stockString1 += '<span> at</span> <span class="stockTime">' + stockInfo1.ltt + '</span>';
stockString1 += '</div>';
$('.haul').prepend(stockString1);
});
}
});
。您可能需要在不同的设备上处理也包含ImageEncodingProperties的枚举。