openjdk.ruOpenJDK на русском

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 используются допустимым образом.