JEP 206: Modernize the JavaFX Media Stack on Mac OS X
Модернизация медиастека JavaFX в Mac OS X
| Автор | Marty Thompson |
| Ответственный | David Dehaven |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 8u40 |
| Компонент | client-libs |
| Обсуждение | openjfx dash dev at openjdk dot java dot net |
| Трудоёмкость | L |
| Длительность | L |
| Рецензенты | Steve Northover |
| Одобрен | Richard Bair |
| Создан | 2014/05/21 22:33 |
| Обновлён | 2015/02/26 14:06 |
| Задача | 8043697 |
Аннотация
Перенести медиастек JavaFX в Mac OS X с QTKit и Quicktime, получивших статус Deprecated (устаревший), на более новый фреймворк AVFoundation.
Мотивация
Клиентам нужна возможность выпускать Java-приложения в Mac App Store. Если приложение использует возможности со статусом Deprecated, его нельзя отправить в Mac App Store. Поэтому нужно убрать зависимость от QuickTime, чтобы приложения разработчиков, использующих медиастек JavaFX, могли пройти проверку Mac App Store. Кроме того, ожидается, что API Quicktime и QTKit будут удалены в одном из будущих обновлений OS X, и тогда воспроизведение медиа перестанет работать.
Описание
Медиастек JavaFX использует QTKit. QTKit должен был заменить QuickTime, но так и не заменил его полностью. Когда части iOS начали переносить в OS X, туда перенесли и AVFoundation как полноценную замену QuickTime, и с тех пор вся разработка медиа-API в Apple сосредоточена только на AVFoundation и связанных с ним технологиях. Теперь QTKit получил статус Deprecated в OS X 10.9, и Apple требует от разработчиков перейти на более новый фреймворк AVFoundation.
В медиастеке JavaFX уже есть слой абстракции платформы, предназначенный как раз для таких ситуаций. С помощью этого слоя стек уже переносили на AVFoundation в OS X в рамках проверки концепции. От этого пути отказались, потому что в то время, в OS X 10.6, AVFoundation был перенесён не полностью и не отвечал всем нашим требованиям. С тех пор AVFoundation стал зрелее, и ключевые недостающие части теперь на месте.
Тестирование
Для этого понадобятся новые модульные тесты для медиаплеера, специфичного для Mac. Существующие функциональные тесты, как ожидается, изменять не придётся. Мы отправим в Mac App Store демонстрационное приложение JavaFX, работающее с медиа, чтобы проверить, что зависимости от QTKit полностью удалены, а новые API AVFoundation используются допустимым образом.