CameraCaptureDialog

В операционной системе Windows Mobile 5.0 появилась поддержка работы с фотокамерой при помощи нового диалогового окна . Доступ к данному окну осуществляется при помощи класса Microsoft.WindowsMobile.Forms.CameraCaptureDialog.

Данное диалоговое окно захвата изображения позволяет интегрировать фотографии и видеоматериал в приложения. При этом разработчик получает возможность управлять поведением камеры.

Свойство Mode позволяет управлять режимом съемки. Камера может работать как обычный фотоаппарат (CameraCaptureMode.Still) или записывать видеоролик. Само окно вызывается при помощи метода ShowDialog, который возвращает значение, показывающее, как было закрыто окно. Если пользователь выбрал кнопку ОК, то возвращается значение DialogResult.OK. Имя выбранной картинки записывается в свойство FileName.

Рассмотрим работу с этим диалоговым окном на примере. Поместим на форме метку lblFileName и графическое поле picPhoto. Вначале надо установить ссылку на пространство имен Microsoft.WindowsMobile.Forms:

using Microsoft.WindowsMobile.Forms;private void button1_Click(object sender, EventArgs e){    CameraCaptureDialog cameraDialog = new CameraCaptureDialog();    cameraDialog.Owner = this;    cameraDialog.Title = "Фотограф";    cameraDialog.Mode = CameraCaptureMode.Still;                if (cameraDialog.ShowDialog() == DialogResult.OK && cameraDialog.FileName.Length > 0)    {        lblFileName.Text = "Выбранный файл: " +                    cameraDialog.FileName;        picPhoto.Image = new Bitmap(cameraDialog.FileName);        MessageBox.Show("Снято!");    }}

Для записи видеоролика используется аналогичный способ, но надо поменять режим съемки. Пример можно найти в книге Программирование КПК и смартфонов на .NET Compact Framework.

Существует еще режим записи видео без звукового сопровождения. В этом случае для свойства Mode задается значение CameraCaptureMode.VideoOnly. Если перед вызовом метода ShowDialog использовать свойство DefaultFileName, то указанное имя файла будет использоваться как имя файла для записи новых фотографий или видеоматериалов. Свойство InitialDirectory позволяет указать папку, в которой будут сохраняться отснятые материалы. Свойство Resolution позволяет задать разрешение снимаемого материала:

cameraDialog.Resolution = new Size(320, 240);

Свойство StillQuality позволяет установить качество сжатия для фотографий при помощи перечисления CameraCaptureStillQuality:

Свойство VideoTimeLimit позволяет установить максимальную продолжительность записи видеоматериала. По умолчанию используется нулевое значение, что означает отсутствие временного ограничения. В этом случае запись съемки будет вестись до тех пор, пока позволяют ресурсы системы. Свойство VideoTypes позволяет выбрать тип видеоматериала. Для Windows Mobile 5.0 используется два типа - Multimedia Messaging Service (MMS) и Windows Media Video (WMV).