2 일 동안 Lumia 930 Windows Phone으로 사진을 캡처하려고합니다. 내가
_captureInitSettings.PhotoCaptureSource = Windows.Media.Capture.PhotoCaptureSource.VideoPreview;
Windows Phone 8.1 사진 캡처가 작동하지 않습니다.
내가 사진을 얻을 선택하면
:하지만, 당신은 여기에 해결책을 찾을 수
public sealed partial class MainPage : Page
{
Windows.Media.Capture.MediaCapture captureManager;
public MainPage()
{
this.InitializeComponent();
First.Click += async (sender, e) => await Initialize();
Second.Click += async (sender, e) => await shutter();
}
private async Task Initialize()
{
captureManager = new MediaCapture();
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(Windows.Devices.Enumeration.DeviceClass.VideoCapture);
List<Windows.Devices.Enumeration.DeviceInformation> _deviceList = new List<Windows.Devices.Enumeration.DeviceInformation>();
for (var i = 0; i < devices.Count; i++)
{
_deviceList.Add(devices[i]);
}
MediaCaptureInitializationSettings _captureInitSettings = null;
_captureInitSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings();
_captureInitSettings.AudioDeviceId = "";
_captureInitSettings.VideoDeviceId = "";
_captureInitSettings.StreamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.AudioAndVideo;
_captureInitSettings.PhotoCaptureSource = Windows.Media.Capture.PhotoCaptureSource.Photo;
if (_deviceList.Count > 0)
_captureInitSettings.VideoDeviceId = _deviceList[0].Id;
await captureManager.InitializeAsync(_captureInitSettings);
//capturePreview.Source = captureManager;
//await captureManager.StartPreviewAsync();
await SetResolution();
}
public async Task SetResolution()
{
System.Collections.Generic.IReadOnlyList<IMediaEncodingProperties> res;
res = this.captureManager.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo);
uint maxResolution = 0;
int indexMaxResolution = 0;
string s = "";
if (res.Count >= 1)
{
for (int i = 0; i < res.Count; i++)
{
VideoEncodingProperties vp = (VideoEncodingProperties)res[i];
var frameRate = (vp.FrameRate.Numerator/vp.FrameRate.Denominator);
s = i + ") " + vp.Subtype + ", ";
s = s + vp.Width;
s = s + " x " + vp.Height;
s = s + " , Frame/s: " + frameRate;
if (vp.Width > maxResolution && vp.Subtype.Equals("YUY2"))
{
indexMaxResolution = i;
maxResolution = vp.Width;
}
if (true)
{
Debug.WriteLine(s);
}
s = "";
}
//setting resolution
await captureManager.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, res[indexMaxResolution]);
return;
}
}
private async Task shutter()
{
ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg();
var photoStorageFile = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFileAsync("Photo.JPG", Windows.Storage.CreationCollisionOption.GenerateUniqueName);
await captureManager.CapturePhotoToStorageFileAsync(imageProperties, photoStorageFile);
return;
}
}
:
나는 다음과 같은 코드를 사용하고 매우 진절머리 나는 해상도/품질. 사진을 사용할 때 훨씬 더 합리적인 것이 무엇인지, 2MB 파일을 얻었습니다.이 파일은 꽤 괜찮은 것 같지만 내용은 검은 색이고 노란색 선은 lense가 닫힌 것처럼 보입니다.
카메라가 Nokia 카메라 또는 기타 응용 프로그램과 호환되므로 하드웨어 문제 일 수 없습니다.
msdn 샘플을 검토 했습니까? http://msdn.microsoft.com/en-us/library/windows/apps/dn376408.aspx – Kulasangar
안녕하세요, CameraUI를 사용하고 싶지 않으므로 "CameraCaptureUI 컨트롤을 사용할 수 없습니다. Windows Phone 8.1 장치 "를 참조하십시오. 마이크로 소프트가 스틸 사진을 찍는 방법, 비디오만을 가져 오는 방법을 하나의 예제로 제공하지 않는다는 사실이 나를 미치게합니다! – netik