Використання SoundPlayer, SoundPlayerAction і SystemSounds
Клас SoundPlayer був введений в. NET Framework 2.0 у вигляді керованого класу, щоб зробити можливим аудіо в Microsoft Windows апплікаціях. Він легкий і простий у використанні, але має значні обмеження:- може програвати тільки нестиснені (uncompressed) .wav файли. Він не може читати стиснені .wav файли або файли в інших аудіо форматах;
- не підтримує відтворення одночасно більше одного звуку;
- крім того, розробник не має ніякого контролю над звуком, баланcoм, швидкістю, або будь-якими іншими аспектами відтворення звуку.
Найважливіші мембери класу SoundPlayer.
| Мембер | Тип | Опис |
| IsLoadCompleted | Пропертя | Повертає bool значення, що показує, чи успішно виконане завантаження .wav файлу |
| Load | Метод | Виконує синхронне завантаження звукового об'єкта. |
| LoadAsync | Метод | Виконує асинхронне завантаження звукового об'єкта. |
| LoadComplete | Івент | Рейзається при успішному або неуспішному завантаженні .wav файлу. |
| LoadTimeout | Пропертя | Повертає або задає час в мілісекундах, за який повинен бути завантажений .wav файл |
| Play | Метод | Асинхронно відтворює .wav файл |
| PlayLooping | Метод | Циклічно і Асинхронно відтворює .wav файл |
| PlaySync | Метод | Синхронно відтворює .wav файл |
| SoundLocation | Пропертя | Повертає або задає шлях до файлу або URL-адресу для загрузки .wav файлу |
| SoundLocationChanged | Івент | Рейзається після задання нового шляху до файлу. |
| Stop | Метод | Зупиняє відтворення звукового файлу, якщо воно виконується. |
| Stream | Пропертя | Повертає або задає потік потік для завантаження .wav файлу |
| StreamChanged | Івент | Рейзається після задання нового потоку Stream для джерела звукового файлу. |
Клас SoundPlayerAction дозволяє більш зручно використовувати клас SoundPlayer . Клас успадкований від TriggerAction, який дозволяє використовувати його у відповідь на будь-яку подію
Системні звуки (SystemSounds)
Однією з особливостей операційної системи Windows , є її здатність відображати аудіофайли на певні системні події. Поряд з SoundPlayer в WPF також надано клас SystemSounds , що дозволяє отримати доступ до найбільш часто використовуваних з цих звуків і задіяти їх у власних додатках. Ця техніка працює краще , якщо все, що потрібно - це прості короткі звуки , призначені для того , щоб повідомити про завершення якоїсь тривалої операції або подати сигнал попередження .
Можна получити доступ до наступних системних звуків :
- Asterisk (Знак питання )
- Веер (Повідомлення про отримання пошти)
- Exclamation (Вигук)
- Hand (Критична помилка)
- Question (Питання )
Для відтворення МРЗ-аудіо або MPEG-відео призначені класи MediaPlayer і MediaElement. Обидва ці класи використовувати функціональність Windows Media Player 10.
Працюють під платформами:
- Windows 8;
- Windows Server 2012;
- Windows 7;
- Windows Vista SP2,
- Windows Server 2008 (Server Core Role not supported);
- Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
- MediaPlayer не має UI і таким чином не може легко використовуватись в XAML
- MediaElement є врапером об'єкта MediaPlayer і забезпечує візуальний інтерфейс для відтворення відео файлів. MediaElement призначений для використання в XAML. MediaElement є повноцінним WPF елементом, який може бути використаний для відображення відео в апплікаціях.
| Мембер | Тип | Опис |
| Balance | Пропертя | Встановлює баланс між лівим і правим каналом як число від -1 (тільки лівий канал) до 1 (тільки правий канал) |
| DownloadProgress, BufferingProgress | Пропертя | Показує відсоток завантаження (зручно в тих випадках, коли джерелом є URL, який вказує на місце розташування в Інтернеті або на іншому комп'ютері). Відсоток представлений у вигляді числа від 0 до 1 |
| HasAudio, HasVideo | Проперті | Вказує на те, чи містить поточний завантажений мультимедійний файл, відповідно, аудіо-та відео. |
| LoadedBehavior | Пропертя | Вказує, чи повинен файл відтворюватися автоматично при завантаженні. Play - файл відтворюється автоматично при завантаженні. Manual - файл не буде відтворення, поки не викликати метод Play. Ця пропертя існує тільки в MediaElement. |
| NaturalDuration, NaturalVideoHeight, NaturalVideoWidth | Проперті | Вказують на те, чи йде відтворення на нормальній швидкості, а також задають розмір відео-вікна. |
| Position | Пропертя | Об'єкт TimeSpan, який вказує поточне місце розташування в медіафайлів. Це властивість можна встановлювати для пропуску частини файлу і продовжити відтворення з вказаного місця |
| Source | Пропертя | Повертає універсальний ідентифікатор ресурсу (URI), з яких мультимедійний файл був завантажений. Для MediaPlayer ця пропертя лише для читання. Для MediaElement ви можете встановити значення для цієї проперті декларативно в XAML. |
| SpeedRatio | Пропертя | Встановлює підвищену швидкість при відтворенні звуку (або відео). Значення за замовчуванням дорівнює 1, що означає нормальну швидкість, у той час як 2 - подвійну швидкість, 10 - швидкість, вдесятеро вище нормальної, 0,5 - половину нормальної швидкості і т.д. Можна використовувати будь-яке позитивне значення типу double |
| Volume | Пропертя | Встановлює гучність у вигляді числі від 0 (повна тиша) до 1 (повна гучність). Дефолтне значення дорівнює 0,5 |
| Open | Метод | Завантажує новий мультимедійний файл |
| Pause | Метод | Тимчасово призупиняє відтворення, не змінюючи його позиції. Якщо викликати Play () знову, то відтворення почнеться з поточної позиції. Якщо відтворення не відбувається, не дає ніякого ефекту |
| Play | Метод | Починає відтворення. Не має ніякого ефекту, якщо файл вже відтворюється |
| Stop | Метод | Зупиняє відтворення і скидає позицію на початок файлу. Якщо знову викликати Play (), то відтворення почнеться з початку файлу. Не має ефекту, якщо відтворення вже зупинено |
| MediaEnded | Івент | Виникає, коли медіа-файл закінчив відтворення |
| MediaFailed | Івент | Виникає, коли є проблема пошуку або завантаження файлу |
| MediaOpened | Івент | Виникає, коли медіа-файл завершив завантаження |
- MediaPlayer необхідно створюєти поза івент хендлером, щоб він існував протягом життєвого циклу вікна .
- Обов'язково повинен бути створений хендлер івента Window.Unloaded , в якому викликається метод Close( ) для зупинки будь-якого звуку при закритті вікна .
- Розташування файлу вказується у вигляді URI.
- Методи Open( ) і Play( ) не генерують екзепшинів. Натомість пропонується самостійно обробляти івенти MediaOpened і MediaFailed , щоб визначити , чи було запущено відтворення аудіо.
Скачати приклад
Комментариев нет:
Отправить комментарий