UWPでカメラからの動画を録画する方法です。 CameraCaptureUIクラスを使用します。
VideoSettings.Formatで保存するタイプを指定してCapgureFileAsyncで録画とファイルへの保存を行います。
後は、FileSavePickerあたりで適当なファイルに出力してやればOKです。見た感じ録画した画像をインメモリにため込むことは出来ない気がします。何かごにょごにょやりたかったら、ファイルに保存されたものを読み込んで解析してねってことなのかな。
private async void Button_Click(object sender, RoutedEventArgs e) { var camera = new CameraCaptureUI(); camera.VideoSettings.Format = CameraCaptureUIVideoFormat.Mp4; var file = await camera.CaptureFileAsync(CameraCaptureUIMode.Video); var picker = new FileSavePicker(); picker.FileTypeChoices.Add("mp4", new List<string> { ".mp4" }); var dist = await picker.PickSaveFileAsync(); if (dist != null) { file.CopyAndReplaceAsync(dist); } }
最後に忘れがちなPackage.appxmanifestを開いて機能からWebカメラにチェックを入れます。
実行すると以下のようなUIが表示されます。UIはカスタム出来ないと思うので、かっこいい動画録画用UIとか設計しないほうが無難でしょう。
録画が終わると以下のようにプレビューしたりできます。至れり尽くせりですね。