C# 我使用以下代码从相机中捕获图像。但是我不能用这个来录制视频
只需使用标准样本从中录制视频C# 我使用以下代码从相机中捕获图像。但是我不能用这个来录制视频,c#,uwp,cameracapturetask,C#,Uwp,Cameracapturetask,只需使用标准样本从中录制视频 您还可以使用MediaCapture录制视频,这是我参与的一个项目的摘录(其中一些是我刚刚从内存中写的,如果需要,我回家后会更正): 你应该更详细地描述一下你的问题。代码中的注释也有助于更好更快地理解代码。(这部分代码应该做什么,为什么会在那里)否则人们会对你的问题投反对票,甚至会把它作为离题题来结束 CameraCaptureUI capture = new CameraCaptureUI(); capture.PhotoSettings.Format = Ca
您还可以使用MediaCapture录制视频,这是我参与的一个项目的摘录(其中一些是我刚刚从内存中写的,如果需要,我回家后会更正):
你应该更详细地描述一下你的问题。代码中的注释也有助于更好更快地理解代码。(这部分代码应该做什么,为什么会在那里)否则人们会对你的问题投反对票,甚至会把它作为离题题来结束
CameraCaptureUI capture = new CameraCaptureUI();
capture.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;
capture.PhotoSettings.CroppedAspectRatio = new Size(1, 2);
capture.PhotoSettings.MaxResolution=CameraCaptureUIMaxPhotoResolution.HighestAvailable
StorageFile storeFile=await capture.CaptureFileAsync(CameraCaptureUIMode.Photo);
if (storeFile != null)
{
var stream = await storeFile.OpenAsync(FileAccessMode.Read);
BitmapImage bimage = new BitmapImage();
bimage.SetSource(stream);
Image imageitem = new Image();
imageitem.Source = bimage;
my_canvas.Children.Add(imageitem);
CameraCaptureUI captureUI = new CameraCaptureUI();
captureUI.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4;
StorageFile videoFile = await captureUI.CaptureFileAsync(CameraCaptureUIMode.Video);
if (videoFile == null)
{
// User cancelled photo capture
return;
}
public class CameraController
{
private MediaCapture _mediaCap;
private bool _isInitialised;
public async Task InitialiseWebCam()
{
if (!_isInitialised)
{
var settings = ApplicationData.Current.LocalSettings;
string preferredDeviceName = $"{settings.Values["PreferredDeviceName"]}";
var videoDevices = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
DeviceInformation device = videoDevices.FirstOrDefault(x => x.Name == preferredDeviceName);
if (device == null)
device = videoDevices.FirstOrDefault();
if (device == null)
throw new Exception("Cannot find a camera device");
else
{
//initialize the WebCam via MediaCapture object
_mediaCap = new MediaCapture();
var initSettings = new MediaCaptureInitializationSettings { VideoDeviceId = device.Id };
await _mediaCap.InitializeAsync(initSettings);
_mediaCap.Failed += new MediaCaptureFailedEventHandler(MediaCaptureFailed);
_isInitialised = true;
}
}
}
public async StorageFile RecordVideo(TimeSpan duration)
{
if (!_isInitialised)
await InitialiseWebCam();
StorageFile videoFile = await KnownFolders.VideosLibrary.CreateFileAsync(
$"video_{DateTime.Now.ToString("yyyyMMddHHmmss")}.mp4", CreationCollisionOption.GenerateUniqueName);
var mediaEncoding = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Vga);
await _mediaCap.StartRecordToStorageFileAsync(mediaEncoding, videoFile);
await Task.Delay(duration);
await _mediaCap.StopRecordAsync();
return videoFile;
}
private void MediaCaptureFailed(MediaCapture sender, MediaCaptureFailedEventArgs errorEventArgs)
{
//TODO: Implement this
}
}