Выбор приложений и документов

Пользователи могут выбрать приложения и документы для совместного использования аудио/видеоконтента по iChat Theater. Пользователи делают это путем выбора File> Share a File с iChat Theater и выбора приложения или документа доле. Или пользователь может перетащить значок приложения непосредственно в окно видео-чата. Эти действия запускают сеанс со связанного клиентского приложения.

Приложения и их документы автоматически не появляются как выбор пользователю, если iChat Theater не знает, что у них есть аудио/источники видеосигнала, которое может быть совместно использовано. В частности iChat Theater должен знать, какие приложения, для которых типы документов могут совместно использовать аудио/видео. iChat Theater получает эту информацию от информационного файла списка свойств приложения. Поэтому отредактируйте информационный файл списка свойств своего приложения, как описано в этой статье, чтобы позволить пользователям совместно использовать Ваше приложение и документы по iChat Theater.

Существует два пути к приложениям для идентификации себя как потенциальное аудио/источники видеосигнала для iChat Theater. Основанные на документе приложения могут зарегистрировать свои типы документов с помощью LSCanProvideIMVideoDataSource Булев ключ описан в Регистрации Типов документов. Приложения, не имеющие документов, но все еще обеспечивающие аудио/источники видеосигнала, могут также использовать этот ключ, как описано в Регистрирующихся Приложениях Недокумента.

Кроме того, приложение должно обеспечить аудио/источник видеосигнала по запросу пользователем. Считайте Совместное использование Аудио/Видеоконтента для шагов, которые необходимо предпринять, когда пользователь выбирает приложение или его документы.

Информационный файл списка свойств, Info.plist, расположен в пакете приложения. Считайте руководство пользователя Xcode 2 для узнавания больше об информационном списке свойств.

Регистрация типов документов

Для идентификации типа документа, поддерживаемого приложением как потенциальное аудио/источник видеосигнала для iChat Theater, добавьте LSCanProvideIMVideoDataSource Булев ключ к соответствующему словарю в CFBundleDocumentTypes массив в приложении Info.plist файл. Если Вы устанавливаете LSCanProvideIMVideoDataSource к true, пользователи могут выбрать тот тип документа для совместного использования по iChat Theater. Значение по умолчанию false.

Например, Перечисление 1 показывает фрагмент информационного списка свойств, идентифицирующего все документы типа xyz как потенциальное аудио/источники видеосигнала. Это показывает, что приложение способно к открытию, просмотру и совместному использованию по документам iChat Theater типа xyz.

Не все типы документов, поддерживаемые приложением, должны быть аудио/источниками видеосигнала. Добавьте LSCanProvideIMVideoDataSource ключ, устанавливая значение в true, только для тех типов документов, которые могут быть аудио/источниками видеосигнала.

Перечисление 1  , Разрешающее основанное на документе приложение

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>xyz</string>
            </array>
            <key>CFBundleTypeIconFile</key>
            <string>KeyDocument</string>
            <key>CFBundleTypeName</key>
            <string>BGDocumentTypeShow</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSCanProvideIMVideoDataSource</key>
            <true/>
            <key>LSTypeIsPackage</key>
            <true/>
            <key>NSDocumentClass</key>
            <string>BGDocument</string>
        </dict>
        ...
    </array>
    ...
</dict>
</plist>

Регистрация приложений недокумента

Если приложение не имеет никаких документов, но тем не менее способно к совместному использованию аудио/видеоконтента по iChat Theater, вставьте LSCanProvideIMVideoDataSource Булев ключ на верхнем уровне информационного списка свойств.

Например, Перечисление 2 показывает информационный список свойств для приложения под названием StarViewer, представляющий представление ночного неба. Информационный список свойств устанавливает LSCanProvideIMVideoDataSource ключ к true позволить пользователям выбирать StarViewer из iChat Theater.

Перечисление 2  , Разрешающее не документ, базировало приложение

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>StarViewer</string>
    <key>CFBundleGetInfoString</key>
    <string>1.0, Copyright 2007 My Company Inc.</string>
    <key>CFBundleIconFile</key>
    <string>StarViewer</string>
    <key>CFBundleIdentifier</key>
    <string>com.mycompany.StarViewer</string>
    <key>LSCanProvideIMVideoDataSource</key>
    <true/>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>1.0</string>
    <key>CFBundleName</key>
    <string>StarViewer</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>star</string>
    <key>CFBundleVersion</key>
    <string>118</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.5.0</string>
    <key>LSRequiresNativeExecution</key>
    <true/>
    <key>NSMainNibFile</key>
    <string>MainMenu</string>
    <key>NSPrincipalClass</key>
    <string>NSApplication</string>
</dict>
</plist>

Совместное использование Аудио/Видеоконтента

Когда приложение или документ выбраны пользователем для совместного использования по iChat Theater, состояние связанного приложения совместно использовало IMAVManager возразите изменениям в IMAVRequested. Приложения должны наблюдать IMAVManagerStateChangedNotification уведомление для обработки этого события.

Для ответа на пользовательский запрос основанные на документе приложения должны вызвать URLToShare метод, чтобы получить выбранный файл и начать совместно использовать его содержание. Обратите внимание на то, что iChat открывает использование документа Launch Services, таким образом, приложение не должно запускать сеанс, пока документ не закончен, загрузившись.

Основанные на документе приложения должны также наблюдать IMAVManagerURLToShareChangedNotification уведомление, которое будет уведомлено, когда пользователь выбирает другой документ доле. Когда это уведомление будет отправлено, вызовите URLToShare метод снова для получения нового файла. Приложения должны просто использовать setVideoDataSource: метод для изменения содержания, не останавливаясь и запуская сеанс.

Приложения, не имеющие документов просто, начинают совместно использовать свое содержание когда состояние совместно используемого IMAVManager возразите изменениям в IMAVRequested.