Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 376 377 378 379 380 381 < 382 > 383 384 385 386 387 388 .. 473 >> Следующая

<Grid>
<Grid.RowDefinitions>
<RowDefinition Size="Auto"></RowDefinition>
<RowDefinition Size="Auto"></RowDefinition>
</Grid.RowDefinitions>
<MediaElement x:Name="media"></MediaElement>
Book_Pro_WPF-2.mdb 744 19.05.2008 18:11:22
Звук и видео
745
<Button>
<Button.Content>Click me to hear a sound.</Button.Content>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<MediaTimeline Source="soundA.wav" Storyboard.TargetName="media"></MediaTimeline>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>
Поскольку этот пример воспроизводит аудио, позиционирование MediaElement несущественно. В данном примере он помещается внутри Grid, перед Button. (Порядок не важен, поскольку во время выполнения программы MediaElement не будет иметь никакого визуального представления.) Когда осуществляется щелчок на кнопке, создается Storyboard c MediaTimeline. Обратите внимание, что источник не специфицирован в свойстве MediaElement.Source. Вместо этого источник передается через свойство MediaElement.Source.
На заметку! Когда вы используете MediaElement в качестве цели для Ме^аТішеііпе, уже не имеет значения, установлены ли LoadedBehavior и UnloadedBehavior. Как только вы применили MediaTimeline, ваше аудио или видео управляется таймером анимации \№Р (конкретно — экземпляром класса MediaClock, который представлен в свойстве
MediaElement.Clock).
Вы можете использовать единственный экземпляр Storyboard для контроля воспроизведения в единственном MediaElement. Другими словами, не только останавливать, но также приостанавливать временно и возобновлять воспроизведение. Например, рассмотрим крайне простой четырехкнопочный медиапроигрыватель, показанный на рис. 22.1.
И DeclarativePlayback
Play Stop Pause Resume
Рис. 22.1. Окно управления воспроизведением
Это окно использует единственный MediaElement, MediaTimeline и Storyboard. Storyboard и MediaTimeline объявлены в коллекции Window.Resources:
<Window.Resources>
<Storyboard x:Key="MediaStoryboardResource">
<MediaTimeline Storyboard.TargetName="media" Source="test.mp3"></MediaTimeline> </Storyboard>
</Window.Resources>
Book_Pro_WPF-2.mdb 745 19.05.2008 18:11:22
746 Глава 22
Единственная сложность состоит в том, что вы должны не забыть определить все триггеры для управления раскадровкой в одной коллекции. Вы можете затем присоединить их к соответствующим элементам управления, используя свойство EventTrigger.
SourceName.
В данном примере все триггеры объявлены внутри StackPanel, содержащей кнопки. Вот эти триггеры и кнопки, использующие их для управления аудио:
<StackPanel Orientation="Horizontal">
<StackPanel.Triggers>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdPlay"> <EventTrigger.Actions>
<BeginStoryboard Name="MediaStoryboard"
Storyboard="{StaticResource MediaStoryboardResource}"/> </EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdStop"> <EventTrigger.Actions>
<StopStoryboard BeginStoryboardName="MediaStoryboard"/> </EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdPause"> <EventTrigger.Actions>
<PauseStoryboard BeginStoryboardName="MediaStoryboard"/> </EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdResume"> <EventTrigger.Actions>
<ResumeStoryboard BeginStoryboardName="MediaStoryboard"/> </EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
<MediaElement Name="media"></MediaElement>
<Button Name="cmdPlay">Play</Button>
<Button Name="cmdStop">Stop</Button>
<Button Name="cmdPause">Pause</Button>
<Button Name="cmdResume">Resume</Button>
</StackPanel>
Обратите внимание, что даже несмотря на то, что реализация MediaElement и MediaPlayer позволяют возобновить воспроизведение после паузы вызовом Play(), Storyboard работает иначе. Вместо этого требуется отдельное действие ResumeStoryboard. Если это не то, что вам нужно, вы можете добавить некоторый код к вашей кнопке воспроизведения вместо применения декларативного подхода.
На заметку! Загружаемый код для этой главы включает примеры окна декларативного медиапроигрывателя и более гибкого окна медиапроигрывателя, управляемого кодом.
Воспроизведение множества звуков
Хотя предыдущий пример демонстрирует воспроизведение единственного медиафайла, нет никаких причин, которые помешали бы вам расширить его, добавив возможность одновременного воспроизведения нескольких аудиофайлов. Следующий пример включает две кнопки, каждая из которых запускает воспроизведение своего собственного звука. Когда выполняется щелчок на кнопке, создается новый объект Storyboard, с новой MediaTimeline, которая используется для воспроизведения отдельного аудиофайла через один и тот же MediaElement.
Book_Pro_WPF-2.mdb 746 19.05.2008 18:11:22
Звук и видео 747
<Grid>
<Grid.RowDefinitions>
<RowDefinition Size="Auto"></RowDefinition>
Предыдущая << 1 .. 376 377 378 379 380 381 < 382 > 383 384 385 386 387 388 .. 473 >> Следующая