Windowsプログラミング初心者です(Web系は一通り経験済みです)
要件は下記2点です
1、10分おきにWebカメラで写真を撮ってクラウドサーバーに保存する 2、クラウドサーバで感情認識を行い、その情報を永続データ化する。
2は実装済みで、1はWebブラウザで実装したのですが、せっかくならWindowsアプリケーション化しようと思い立ちました。
そこで、どのアプリケーションフレームワークを採用するべきか悩んでいます。
Microsoftのドキュメントを元に選定を行っています。
UWPを検討していて、手動でWebカメラを扱う分には、該当するAPIが見つかったのですが、10分おきに「自動で」カメラを取る処理の実装方法がわかりません。
こちらはUWPで実現不可能でしょうか?
UWPで実現不可能ということはwin32を採用するべきでしょうか?
(追記)
質問を言語化できていませんでした。失礼いたしました。
下記のコードだと、Windowsカメラが起動され、カメラのボタンをクリックすることでスクリーンショットをとる、という流れになります。
バックグラウンドでアプリを立ち上げておくことで、いちいちカメラが立ち上がってほかの作業を阻害しないようにしたいです。自分がそのアプリを意識せずに済むようにしたいです。
カメラを起動せずにWebカメラを使用して写真を撮る方法はあるのでしょうか?
private async void SimpleCapture(object sender, RoutedEventArgs e) { // キャプチャを初期化する CameraCaptureUI capture = new CameraCaptureUI(); capture.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg; capture.PhotoSettings.CroppedSizeInPixels = new Size(200, 200); // 写真をキャプチャする var file = await capture.CaptureFileAsync(CameraCaptureUIMode.Photo); // ストリーム IRandomAccessStream stream = await file.OpenReadAsync(); // IRandomAccessStreamとは? byte[] buff = new byte[stream.Size]; DataReader reader = new DataReader(stream); await reader.LoadAsync((uint)stream.Size); reader.ReadBytes(buff); // HTTPリクエスト処理 NetHttpClient client = new NetHttpClient(); Uri requestUri = new Uri("https://asia-northeast1-xxxxxxxxxx/xxxx"); var message = await client.PostAsync(requestUri, new ByteArrayContent(buff)); MessageDialog dialog = new MessageDialog(await message.Content.ReadAsStringAsync()); await dialog.ShowAsync(); }
あなたの回答
tips
プレビュー