Используя представления как источники видеоданных
Любой NSView
объект может также быть источником видеоданных IMAVManager
объект. Это включает экземпляры WebView
, NSOpenGLView
, QCView
, и QTMovieView
классы. Например, можно реализовать простой веб-браузер с помощью веб-Набора и отправить представленные страницы в iChat Theater. Мгновенная платформа сообщения добавляет возможности рендеринга видео к этим классам. Эта статья объясняет, как использовать эту функцию.
Установка источника видеоданных
Очень просто установить NSView
возразите как источник видеоданных. Просто создайте экземпляр представления, которое Вы хотите представить как вспомогательный источник видеосигнала в iChat Theater и установить совместно используемое IMAVManager
источник видеоданных объекта к представлению как в этом фрагменте кода:
[[IMAVManager sharedAVManager] setVideoDataSource:myWebView]; |
Установка параметров видео для представлений
По умолчанию Мгновенная платформа сообщения использует видеофильм кинематографического качества для представлений. Если Ваше содержание главным образом статично, можно улучшить производительность путем установки видео опций оптимизации для произвольных представлений к кадрам. Если Ваше содержание является видеофильмом кинематографического качества, то установка этой опции оказывает негативное влияние на производительность.
Если Вы устанавливаете видео оптимизацию в IMVideoOptimizationStills
использование setVideoOptimizationOptions:
когда запросить следующий кадр, метод, необходимо сказать Мгновенную платформу сообщения. Если Вы отправляете setNeedsDisplay:
или setNeedsDisplayInRect:
к NSView
объект, передавая YES
как параметр, тогда Мгновенная платформа сообщения запрашивает следующий кадр.
Вы не должны устанавливать опции оптимизации для a QTMovieView
объект.
Проблемы производительности
При использовании этой функции Мгновенная платформа сообщения не знает характеристики источника видеосигнала — в частности, методы рендеринга не могут предположить, совпадает ли следующий кадр с предыдущим кадром и возвратом NO
улучшить производительность. Поэтому, если производительность становится проблемой, создайте свой собственный источник видеоданных.
Разделение на подклассы NSView
Можно создать подкласс NSView
это не использует реализацию рендеринга значения по умолчанию, предоставленную Мгновенной платформой сообщения. Можно сделать это путем простой реализации IMVideoDataSource
протокол, как объяснено в Реализации Источника Видеоданных. Мгновенная платформа сообщения использует NSView
реализация подкласса IMVideoDataSource
рендеринг методов, если они существуют.
При реализации собственных методов рендеринга удостоверьтесь, что Вы используете хорошие практики программирования HiDPI, таким образом, Ваш рендеринг масштабируется правильно в буферы переменного разрешения. Считайте Инструкции по Независимости разрешения для получения дополнительной информации о реализации независимого от разрешения NSView
подклассы.