Ссылка MusicEventIterator
Вместе со связанными непрозрачными типами Ваше приложение может использовать итератор музыкального события для игры музыкальных треков MIDI и дорожек автоматизации параметра аудиоустройства. Итератор музыкального события является непрозрачным MusicEventIterator
тип данных.
Непрозрачные типы, используемые с итератором музыкального события, описаны в следующих документах:
Коды результата для этого непрозрачного типа описаны в Ссылке MusicPlayer.
-
Создает новый итератор музыкального события.
Объявление
Swift
func NewMusicEventIterator(_
inTrack
: MusicTrack, _outIterator
: UnsafeMutablePointer<MusicEventIterator>) -> OSStatusObjective C
OSStatus NewMusicEventIterator ( MusicTrack inTrack, MusicEventIterator *outIterator );
Параметры
inTrack
Музыкальный трек для итерации.
outIterator
На выводе, недавно создаваемом итераторе музыкального события.
Возвращаемое значение
Код результата.
Обсуждение
Недавно создаваемый итератор музыкального события указывает на первое событие на музыкальном треке, указанном в
inTrack
параметр.При редактировании музыкального трека после соединения его с итератором музыкального события необходимо отбросить итератор и создать новый. Выполните следующие шаги после редактирования дорожки:
Получите текущую позицию с помощью
MusicEventIteratorGetEventInfo
функция, и сохраняет позицию.Избавьтесь от итератора музыкального события.
Создайте новый итератор.
Ищите на желаемую позицию с помощью
MusicEventIteratorSeek
функция.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Избавляется от итератора музыкального события.
Объявление
Swift
func DisposeMusicEventIterator(_
inIterator
: MusicEventIterator) -> OSStatusObjective C
OSStatus DisposeMusicEventIterator ( MusicEventIterator inIterator );
Параметры
inIterator
Итератор музыкального события для избавления.
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Располагает итератор музыкального события в указанную метку времени, в ударах.
Объявление
Swift
func MusicEventIteratorSeek(_
inIterator
: MusicEventIterator, _inTimeStamp
: MusicTimeStamp) -> OSStatusObjective C
OSStatus MusicEventIteratorSeek ( MusicEventIterator inIterator, MusicTimeStamp inTimeStamp );
Параметры
inIterator
Итератор музыкального события, который Вы хотите расположить вдоль музыкального трека.
inTimeStamp
Новая позиция для итератора музыкального события, в ударах.
Если нет никакого музыкального события в требуемое время на выводе, итератор указывает на первое событие после того времени.
Для расположения итератора сразу вне заключительного этапа музыкального трека указать
kMusicTimeStamp_EndOfTrack
для этого параметра. Можно тогда вызватьMusicEventIteratorPreviousEvent
отследить в обратном порядке к заключительному этапу музыкального трека.Для расположения итератора в первое событие музыкального трека укажите значение 0 для этого параметра.
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Располагает итератор музыкального события в следующее событие на музыкальном треке.
Объявление
Swift
func MusicEventIteratorNextEvent(_
inIterator
: MusicEventIterator) -> OSStatusObjective C
OSStatus MusicEventIteratorNextEvent ( MusicEventIterator inIterator );
Параметры
inIterator
Итератор музыкального события, чтобы изменить местоположение.
Возвращаемое значение
Код результата.
Обсуждение
Используйте эту функцию для постепенного увеличения позиции итератора музыкального события вперед через события музыкального трека.
Если итератор на заключительном этапе дорожки, когда Вы вызываете эту функцию, итератор тогда перемещается вне заключительного этапа. Если итератор вне заключительного этапа путем вызова, можно обнаружить
MusicEventIteratorHasCurrentEvent
функция.Следующий фрагмент кода иллюстрирует, как использовать итератор музыкального события для продолжения вперед вдоль музыкального трека от запуска:
// Create a new iterator, which automatically points at the first event
// on the iterator's music track.
bool hasCurrentEvent;
MusicEventIteratorHasCurrentEvent (myIterator, &hasCurrentEvent);
while (hasCurrentEvent) {
// do work here
MusicEventIteratorNextEvent (myIterator);
MusicEventIteratorHasCurrentEvent (myIterator, &hasCurrentEvent);
}
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Располагает итератор музыкального события в предыдущее событие на музыкальном треке.
Объявление
Swift
func MusicEventIteratorPreviousEvent(_
inIterator
: MusicEventIterator) -> OSStatusObjective C
OSStatus MusicEventIteratorPreviousEvent ( MusicEventIterator inIterator );
Параметры
inIterator
Итератор музыкального события, чтобы изменить местоположение.
Возвращаемое значение
Код результата.
Обсуждение
Используйте эту функцию для постепенного уменьшения итератора музыкального события, перемещая его назад через события музыкального трека.
Если итератор в первом событии дорожки, когда Вы вызываете эту функцию, позиция итератора остается неизменной, и эта функция возвращает ошибку.
Следующий фрагмент кода иллюстрирует, как использовать итератор музыкального события для продолжения назад вдоль музыкального трека от конца:
// Points iterator just beyond the final event on its music track
MusicEventIteratorSeek (myIterator, kMusicTimeStamp_EndOfTrack);
bool hasPreviousEvent;
MusicEventIteratorHasPreviousEvent (myIterator, &hasPreviousEvent);
while (hasPreviousEvent) {
MusicEventIteratorPreviousEvent (myIterator);
// do work here
MusicEventIteratorHasPreviousEvent (myIterator, &hasPreviousEvent);
}
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает, содержит ли музыкальный трек событие перед текущей позицией итератора музыкального события.
Объявление
Swift
func MusicEventIteratorHasPreviousEvent(_
inIterator
: MusicEventIterator, _outHasPrevEvent
: UnsafeMutablePointer<Boolean>) -> OSStatusObjective C
OSStatus MusicEventIteratorHasPreviousEvent ( MusicEventIterator inIterator, Boolean *outHasPrevEvent );
Параметры
inIterator
Итератор музыкального события, о состоянии которого Вы хотите знать.
outHasPrevEvent
На выводе,
true
(ненулевой), если существует событие ближе к запуску музыкального трека, чем текущая позиция итератора музыкального события;false
(нуль) иначе.Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает, содержит ли музыкальный трек событие вне текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorHasNextEvent(_
inIterator
: MusicEventIterator, _outHasNextEvent
: UnsafeMutablePointer<Boolean>) -> OSStatusObjective C
OSStatus MusicEventIteratorHasNextEvent ( MusicEventIterator inIterator, Boolean *outHasNextEvent );
Параметры
inIterator
Итератор музыкального события, о состоянии которого Вы хотите знать.
outHasNextEvent
На выводе,
true
(ненулевой), если существует событие ближе до конца музыкального трека, чем текущая позиция итератора музыкального события;false
(нуль) иначе.Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает, содержит ли музыкальный трек событие в текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorHasCurrentEvent(_
inIterator
: MusicEventIterator, _outHasCurEvent
: UnsafeMutablePointer<Boolean>) -> OSStatusObjective C
OSStatus MusicEventIteratorHasCurrentEvent ( MusicEventIterator inIterator, Boolean *outHasCurEvent );
Параметры
inIterator
Итератор музыкального события, о состоянии которого Вы хотите знать.
outHasCurEvent
На выводе,
true
(ненулевой), если существует событие в текущей позиции итератора музыкального события;false
(нуль) иначе.Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.2 и позже.
-
Получает информацию о событии в текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorGetEventInfo(_
inIterator
: MusicEventIterator, _outTimeStamp
: UnsafeMutablePointer<MusicTimeStamp>, _outEventType
: UnsafeMutablePointer<MusicEventType>, _outEventData
: UnsafeMutablePointer<UnsafePointer<Void>>, _outEventDataSize
: UnsafeMutablePointer<UInt32>) -> OSStatusObjective C
OSStatus MusicEventIteratorGetEventInfo ( MusicEventIterator inIterator, MusicTimeStamp *outTimeStamp, MusicEventType *outEventType, const void **outEventData, UInt32 *outEventDataSize );
Параметры
inIterator
Итератор музыкального события, о текущем событии которого Вы хотите информацию.
outTimeStamp
На выводе, метке времени музыкального события, в ударах.
outEventType
На выводе, типе музыкального события. Для возможных типов событий посмотрите Типы Музыкального события.
outEventData
На выводе, ссылке на данные музыкального события. Тип данных указан
outEventType
параметр. Не изменяйте справочные данные непосредственно; для изменения события используйтеMusicEventIteratorSetEventInfo
функция.outEventDataSize
На выводе, размере, в байтах, данных музыкального события в
outEventData
параметр.Возвращаемое значение
Код результата.
Обсуждение
Передача
NULL
для любого выходного параметра, в информации которого Вы не нуждаетесь.Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Информация о наборах для события в текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorSetEventInfo(_
inIterator
: MusicEventIterator, _inEventType
: MusicEventType, _inEventData
: UnsafePointer<Void>) -> OSStatusObjective C
OSStatus MusicEventIteratorSetEventInfo ( MusicEventIterator inIterator, MusicEventType inEventType, const void *inEventData );
Параметры
inIterator
Итератор музыкального события, текущее событие которого Вы хотите установить.
inEventType
Тип музыкального события, которое Вы указываете. Для возможных типов событий посмотрите Типы Музыкального события.
inEventData
Данные о событии, которые Вы указываете. Размер и тип данных должны быть подходящими для типа музыкального события, который Вы указываете в
inEventType
параметр.Возвращаемое значение
Код результата.
Обсуждение
Используйте эту функцию для установки типа музыкального события и данных о событии для события, в которое расположен итератор музыкального события. Эта функция не позволяет Вам изменять метку времени события; чтобы сделать это, вызовите
MusicEventIteratorSetEventTime
функция.Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.2 и позже.
См. также
-
Устанавливает метку времени для события в текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorSetEventTime(_
inIterator
: MusicEventIterator, _inTimeStamp
: MusicTimeStamp) -> OSStatusObjective C
OSStatus MusicEventIteratorSetEventTime ( MusicEventIterator inIterator, MusicTimeStamp inTimeStamp );
Параметры
inIterator
Итератор музыкального события, из текущего события которого Вы хотите изменить метку времени.
inTimeStamp
Новая метка времени для события, в ударах.
Возвращаемое значение
Код результата.
Обсуждение
После вызывания этой функции итератор музыкального события остается расположенным в то же событие. Однако, потому что событие было перемещено в новое расположение на музыкальном треке итератора, итератор больше может не иметь следующего или предыдущего события. Можно протестировать это путем вызова
MusicEventIteratorHasPreviousEvent
иMusicEventIteratorHasNextEvent
.Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Удаляет событие в текущей позиции итератора музыкального события.
Объявление
Swift
func MusicEventIteratorDeleteEvent(_
inIterator
: MusicEventIterator) -> OSStatusObjective C
OSStatus MusicEventIteratorDeleteEvent ( MusicEventIterator inIterator );
Параметры
inIterator
Итератор музыкального события, текущее событие которого Вы хотите удалить.
Возвращаемое значение
Код результата.
Обсуждение
После вызывания этой функции итератор музыкального события указывает на событие, следующее за удаленным событием — если существует такое событие. Если событие, которое Вы удалили, было заключительным этапом, итератор тогда сразу расположен вне заключительного этапа музыкального трека.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-
Итератор музыкального события последовательно обрабатывает события на музыкальном треке.
Объявление
Swift
typealias MusicEventIterator = COpaquePointer
Objective C
typedef struct OpaqueMusicEventIterator *MusicEventIterator;
Доступность
Доступный в OS X v10.0 и позже.
-
Время, в ударах, сразу вне конца музыкального трека.
Объявление
Swift
var kMusicTimeStamp_EndOfTrack: Double { get }
Objective C
#define kMusicTimeStamp_EndOfTrack DBL_MAX
Константы
-
kMusicTimeStamp_EndOfTrack
kMusicTimeStamp_EndOfTrack
Сразу указывает время вне последнего музыкального события в музыкальном треке. Используйте это значение при выборе всех музыкальных событий, запускающихся в определяемое время и расширяющихся на, и включая, последнее событие в дорожке. Также используйте это значение для расположения итератора для того, чтобы переместиться назад через дорожку от конца до запуска. См. также Музыкальные треки Редактирования и
MusicEventIteratorSeek
.Доступный в OS X v10.0 и позже.
-
-
MIDI и другие типы музыкального события, используемые функциями итератора музыкального события.
Объявление
Swift
typealias MusicEventType = UInt32
Objective C
enum { kMusicEventType_NULL = 0, kMusicEventType_ExtendedNote, kMusicEventType_ExtendedControl, kMusicEventType_ExtendedTempo, kMusicEventType_User, kMusicEventType_Meta, kMusicEventType_MIDINoteMessage, kMusicEventType_MIDIChannelMessage, kMusicEventType_MIDIRawData, kMusicEventType_Parameter, kMusicEventType_AUPreset, kMusicEventType_Last }; typedef UInt32 MusicEventType;
Константы
-
kMusicEventType_NULL
kMusicEventType_NULL
Нулевое музыкальное событие.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_ExtendedNote
kMusicEventType_ExtendedNote
Музыкальное событие не-MIDI с переменным числом параметров.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_ExtendedControl
kMusicEventType_ExtendedControl
Не-MIDI управляет событием.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_ExtendedTempo
kMusicEventType_ExtendedTempo
Событие, сигнализирующее изменение в темпе в ударах в минуту.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_User
kMusicEventType_User
Определяемые пользователем данные.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_Meta
kMusicEventType_Meta
Стандартное метасобытие файла MIDI.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_MIDINoteMessage
kMusicEventType_MIDINoteMessage
Примечание MIDI - на сообщении, включая продолжительность.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_MIDIChannelMessage
kMusicEventType_MIDIChannelMessage
MIDI образовывает канал сообщение кроме управления примечанием.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_MIDIRawData
kMusicEventType_MIDIRawData
MIDI монопольные системой данные.
Доступный в OS X v10.0 и позже.
-
kMusicEventType_Parameter
kMusicEventType_Parameter
Событие параметра аудиоустройства.
Доступный в OS X v10.2 и позже.
-
kMusicEventType_AUPreset
kMusicEventType_AUPreset
Событие, содержащее пользователя аудиоустройства, задало словарь.
Доступный в OS X v10.3 и позже.
-
kMusicEventType_Last
kMusicEventType_Last
Маркер, указывающий заключительный перечислитель в перечислении.
Доступный в OS X v10.0 через OS X v10.6.
Оператор импорта
Objective C
@import AudioToolbox;
Swift
import AudioToolbox
Доступность
Доступный в OS X v10.0 и позже.
-