cameraCaptureDialog.Mode = CameraCaptureMode.Still;
if (cameraCaptureDialog.ShowDialog() == DialogResult.OK &&
cameraCaptureDialog.FileName.Length > 0) {
PictureBox.Image = new Bitmap(cameraCaptureDialog.FileName);
MessageBox.Show("Снято!");
}
}
Для записи видеоролика используется аналогичный способ, но надо поменять режим съемки. Так, для записи видеоматериала вместе со звуком используется режим VideoWithAudio
private void butCaptureClick(object sender, EventArgs e) {
CameraCaptureDialog cameraCapture = new CameraCaptureDialog();
cameraCapture.Owner = null;
cameraCapture.InitialDirectory = @"\My Documents":
cameraCapture.DefaultFileName = @"test.3gp";
cameraCapture.Title = "Камера - Демонстрация";
cameraCapture.VideoTypes = CameraCaptureVideoTypes.Messaging;
cameraCapture.Resolution = new Size(176, 144);
// Лимит в 10 секунд для видео
cameraCapture.VideoTimeLimit = new TimeSpan(0, 0, 10);
cameraCapture.Mode = CameraCaptureMode.VideoWithAudio;
if (DialogResult.OK == cameraCapture.ShowDialog()) {
MessageBox.Show("Картинка или видео успешно записаны в:\n{0}",
cameraCapture.FileName);
}
}
Легко заметить, что эти два примера практически идентичны. Существует еще режим записи видео без звукового сопровождения. В этом случае для свойства Mode
CameraCaptureMode.VideoOnly. Если перед вызовом метода ShowDialog использовать свойство DefaultFileName, то указанное имя будет использоваться как имя файла для записи новых фотографий или видеоматериала. Свойство InitialDirectory позволяет указать папку, в которой будут сохраняться отснятые материалы. Свойство Resolution позволяет задать разрешение снимаемого материала, что иллюстрирует следующая строка кода:cameraCaptureDialog.Resolution = new Size(320, 240);
Свойство StillQuality
CameraCaptureStillQuality. Используемые значения перечислены в следующем списке:□ High
□ Normal
□ Low
Свойство VideoTimeLimit
VideoTypes позволяет выбрать тип видеоматериала. На устройствах под управлением Windows Mobile 5.0 используется видеоматериал двух типов — Multimedia Messaging Service (MMS) и Windows Media Video (WMV).Повторение пройденного
Примеры доступа к объектам Pocket Outlook рассматривались применительно к карманным компьютерам. Но теперь надо воссоздать их, опираясь уже на смартфоны. Сам код примеров останется практически неизменным. Но при этом изменится логика управления программой. Как уже говорилось ранее, управление в смартфонах сводится к обработке событий для пунктов меню.
Встречи
Сначала рассмотрим пример с использованием объекта Pocket Outlook. На этот раз надо получить доступ к списку встреч (Appointment). Перед началом изучения примера вам нужно убедиться, что список событий имеет хотя бы одну запись. Если там ничего нет, то следует создать несколько записей самостоятельно.
После создания нового проекта на форме надо разместить элемент ListView
View должно получить значение Details. В коллекции Columns надо задать заголовки Дата, Время и Тема (рис. 10.12). Прежде всего потребуется задать переменную для экземпляра сессии Outlook. Сразу же после вызова метода InitializeComponent в конструкторе формы объявляем экземпляр для сессии PocketOutlook, как показано в листинге 10.19.Рис. 10.12
. Внешний вид приложения