Отъезжайте AudioUnitRemovePropertyListener и Менеджер компонентов на Mac OS X 10.6 и больше
Q: Мое приложение все еще использует AudioUnitRemovePropertyListener и Менеджер компонентов при использовании Аудиоустройств. Для Mac OS X 10.6, во что APIs я должен переместиться?
A: Мое приложение все еще использует AudioUnitRemovePropertyListener и Менеджер компонентов при использовании Аудиоустройств. Для Mac OS X 10.6, во что APIs я должен переместиться?
Традиционно, Менеджер компонентов использовался для регистрации, открытия и упаковки Аудиоустройств. Однако это может не всегда иметь место и для обеспечения API, который будет поддерживаться на Mac OS X 10.6, iPhone 2.0 и большие операционные системы, приложения с помощью аудиоустройств должны переместить от старого Менеджера компонентов APIs к Аудио Компоненту APIs (расположенный в AudioUnitFramework/AudioComponent.h) найти и открыть аудиоустройства.
Когда приложение перемещает в использование Аудио Компонента API на Mac OS X 10.6, это больше не должно также вызывать AudioUnitRemovePropertyListener (осуждаемый в Mac OS X 10.5), поскольку это не поддерживается и перестанет работать.
Приложения должны заменить все вызовы к AudioUnitRemovePropertyListener с AudioUnitRemovePropertyListenerWithUserData. Это обновило пар API с AudioUnitAddPropertyListener разрешение приложений использовать то же AudioUnitPropertyListenerProc несколько раз.
При вызове AudioUnitRemovePropertyListenerWithUserData приложение должно обеспечить тот же указатель функции, и пользовательские данные обеспечили, когда слушатель был добавлен с AudioUnitAddPropertyListener.
От AudioUnitFramework/AUComponent.h Mac OS X 10,6 SDK.
/*!
@function AudioUnitAddPropertyListener
@abstract registration call to receive notifications for when a property changes
@discussion When an audio unit property value changes, a notification callback can be called by the
audio unit to inform interested parties that this event has occurred. The notification is
defined by the tuple of inProc and inProcUserData as paired to the specified property ID,
so the previously defined AudioUnitRemovePropertyListener is dperecated because it didn't
allow for the provision of the inProcUserData to remove a given listener (so, you should
use AudioUnitRemovePropertyListenerWithUserData).
@param inUnit
the audio unit
@param inID
the proeprty identifier
@param inProc
the proceedure to call when the property changes (on any scope or element)
@param inProcUserData
the user data to provide with the callback
@result noErr, or various audio unit errors related to properties
*/
extern OSStatus
AudioUnitAddPropertyListener(AudioUnit inUnit,
AudioUnitPropertyID inID,
AudioUnitPropertyListenerProc inProc,
void * inProcUserData)
__OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0);
/*!
@function AudioUnitRemovePropertyListenerWithUserData
@abstract remove a previously registered property listener
@discussion Removes a previously registered property listener as specified by the inProc and
inProcUser data as paired to the property identifier
@param inUnit
the audio unit
@param inID
the proeprty identifier
@param inProc
the proceedure previously registered
@param inProcUserData
the user data paired with the provided inProc
@result noErr, or various audio unit errors related to properties
*/
extern OSStatus
AudioUnitRemovePropertyListenerWithUserData(AudioUnit inUnit,
AudioUnitPropertyID inID,
AudioUnitPropertyListenerProc inProc,
void * inProcUserData)
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); |
История версии документа
| Дата | Примечания |
|---|---|
| 15.03.2010 | Новый документ, напоминающий разработчикам отъезжать осуждаемый AudioUnitRemovePropertyListener API и использовать Аудио Компонент APIs при нахождении и открытии аудиоустройств. |