Используя представления как источники видеоданных

Любой 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 подклассы.