PictureBox.Image = new Bitmap(cameraCaptureDialog.FileName);
MessageBox.Show("Снято!");
}
}
Для записи видеоролика используется аналогичный способ, но надо поменять режим съемки. Так, для записи видеоматериала вместе со звуком используется режим
VideoWithAudio
. Пример записи видеоролика приведен в листинге 10.18.
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. Внешний вид приложения
Листинг 10.19
private OutlookSession session;
public Form1 {
InitializeComponent;
// Создаем экземпляр сессии Pocket Outlook
session = new OutlookSession;
}
Теперь программист получил доступ к коллекции событий через объект
OutlookSession
. Для коллекции
Appointment
создается соответствующая переменная, при помощи которой можно получить каждый элемент коллекции, что иллюстрирует код, приведенный в листинге 10.20.
Также мы можем получить информацию об имеющихся контактах. Но в этом случае рассматривать код не нужно, так как он полностью повторяет пример для КПК.
Отсылка письма
Рассматриваемый пример покажет, как можно посылать электронное письмо любому человеку, чья запись присутствует в списке Контакты. При этом разработчик может присоединять к отправляемому сообщению файл.
В этом примере будет применен другой подход к дизайну программы. Так как средства навигации в смартфоне довольно скудны, желательно сводить к минимуму число нажатий на клавиши. Например, одна и та же клавиша может запускать разные функции.
После создания нового проекта
SendEmailSmartphone_CS
на форме надо разместить текстовое поле
txtContact
, в котором будет отображаться выбранный электронный адрес.