AVAudioPlayer
Экземпляр AVAudioPlayer
класс, названный аудиоплеером, обеспечивает воспроизведение аудиоданных от файла или памяти.
Apple рекомендует использовать этот класс для воспроизведения аудио, если Вы не играете аудио, полученное от сетевого потока, или требуете очень низкой задержки I/O. Для обзора аудио технологий посмотрите Аудио и Видео Начальную точку и Используя Аудио в Мультимедийном Руководстве по программированию.
Используя аудиоплеер Вы можете:
Звуки игры любой продолжительности
Игра звучит от файлов или буферов памяти
Звуки цикла
Играйте многократные звуки одновременно, один звук на аудиоплеер, с точной синхронизацией
Управляйте относительным уровнем воспроизведения, расположением стерео и скоростью воспроизведения для каждого звука, который Вы играете
Ищите на определенную точку в звуковом файле, поддерживающем такие функции приложения как ускоренная перемотка и перемотка
Получите данные, которые можно использовать для измерения уровня воспроизведения
AVAudioPlayer
класс позволяет Вам играть звук в любом формате аудио, доступном в iOS и OS X. Когда звук закончил играть, Вы реализуете делегата, чтобы обработать прерывания (такие как входящий телефонный вызов на iOS) и обновить пользовательский интерфейс. Методы делегата описаны в Ссылке на протокол AVAudioPlayerDelegate.
Для игры приостановитесь, или остановите аудиоплеер, вызовите один из его методов управления воспроизведением, описанных в Конфигурировании и Управлении Воспроизведением.
Этот класс использует Objective C, объявил функцию свойств управления информацией о звуке — таком как точка воспроизведения во временной шкале звука, и для доступа к опциям воспроизведения — таким как объем и цикличное выполнение.
Для конфигурирования надлежащего аудио сеанса для воспроизведения на iOS обратитесь к Ссылке на протокол Ссылки класса и AVAudioSessionDelegate AVAudioSession. Чтобы изучить, как Ваш выбор форматов файлов влияет на одновременное воспроизведение многократных звуков, обратитесь к Аппаратным и программным Аудиокодекам iOS в Мультимедийном Руководстве по программированию.
Оператор импорта
Swift
import AVFoundation
Objective C
@import AVFoundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует и возвращает аудиоплеер для игры определяемого звукового файла.
Объявление
Swift
init!(contentsOfURL
url
: NSURL!, erroroutError
: NSErrorPointer)Параметры
url
URL, идентифицирующий звуковой файл для игры. Аудиоданные должны быть в формате, поддерживаемом Core Audio. Для списка поддерживаемых форматов посмотрите Используя Аудио в Мультимедийном Руководстве по программированию.
outError
Если ошибка происходит по возврату
NSError
объект описывает ошибку. Набор кNULL
проигнорировать ошибки.Возвращаемое значение
На успехе, инициализированном
AVAudioPlayer
объект. Еслиnil
,outError
параметр содержитNSError
экземпляр, описывающий проблему.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует и возвращает аудиоплеер для игры определяемого буфера памяти.
Объявление
Swift
init!(data
data
: NSData!, erroroutError
: NSErrorPointer)Параметры
data
Блок данных, содержащий звук для игры. Аудиоданные должны быть в формате, поддерживаемом Core Audio. Для списка поддерживаемых форматов посмотрите Используя Аудио в Мультимедийном Руководстве по программированию.
outError
Если ошибка происходит по возврату
NSError
объект описывает ошибку. Набор кNULL
проигнорировать ошибки.Возвращаемое значение
На успехе, инициализированном
AVAudioPlayer
объект. Еслиnil
,outError
параметр содержитNSError
экземпляр, описывающий проблему.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Инициализирует и возвращает аудиоплеер с помощью указанного URL и подсказки типа файла.
Объявление
Параметры
url
URL, идентифицирующий звуковой файл для игры. Аудиоданные должны быть в формате, поддерживаемом Core Audio. Для списка поддерживаемых форматов посмотрите Используя Аудио в Мультимедийном Руководстве по программированию.
utiString
UTI, использующийся в качестве подсказки типа файла. Поддерживаемые UTIs определяются в
File Format UTIs
.outError
Если ошибка происходит по возврату
NSError
объект описывает ошибку. Набор кNULL
проигнорировать ошибки.Возвращаемое значение
На успехе, инициализированном
AVAudioPlayer
объект. Еслиnil
,outError
параметр содержитNSError
экземпляр, описывающий проблему.Обсуждение
utiString
подсказка типа файла говорит синтаксический анализатор, какие звуковые данные для ожидания так, чтобы файлы, которые не являются сам идентификация, или возможно даже повреждают, могут быть успешно проанализированы.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
-
Инициализирует и возвращает аудиоплеер с помощью указанных данных и подсказки типа файла.
Объявление
Параметры
data
Объект данных, содержащий аудио.
utiString
UTI, использующийся в качестве подсказки типа файла. Поддерживаемые UTIs определяются в
File Format UTIs
.outError
Если ошибка происходит по возврату
NSError
объект описывает ошибку. Набор кNULL
проигнорировать ошибки.Возвращаемое значение
На успехе, инициализированном
AVAudioPlayer
объект. Еслиnil
,outError
параметр содержитNSError
экземпляр, описывающий проблему.Обсуждение
utiString
подсказка типа файла говорит синтаксический анализатор, какие звуковые данные для ожидания так, чтобы данные, которые могут возможно быть повреждены, могут быть успешно проанализированы.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.9 и позже.
-
Играет звук асинхронно.
Объявление
Swift
func play() -> Bool
Objective C
- (BOOL)play
Возвращаемое значение
Возвраты
YES
true
на успехе, илиNO
false
при отказе.Обсуждение
Вызов этого метода неявно вызывает
prepareToPlay
метод, если аудиоплеер уже не подготовлен играть.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Играет звук асинхронно, запускающийся в указанной точке во временной шкале устройства аудиовыхода.
Объявление
Swift
func playAtTime(_
time
: NSTimeInterval) -> BoolObjective C
- (BOOL)playAtTime:(NSTimeInterval)
time
Параметры
time
Число секунд для задержки воспроизведения, относительно текущего времени устройства аудиовыхода. Например, для запуска воспроизведения три секунды в будущее со времени Вы вызываете этот метод, используете код как это:
NSTimeInterval playbackDelay = 3.0; // must be ≥ 0
[myAudioPlayer playAtTime: myAudioPlayer.deviceCurrentTime + playbackDelay];
Возвращаемое значение
YES
true
на успехе, илиNO
false
при отказе.Обсуждение
Используйте этот метод для точной синхронизации воспроизведения два или больше
AVAudioPlayer
объекты. Этот фрагмент кода показывает рекомендуемый способ сделать это:// Before calling this method, instantiate two AVAudioPlayer objects and
// assign each of them a sound.
- (void) startSynchronizedPlayback {
NSTimeInterval shortStartDelay = 0.01; // seconds
NSTimeInterval now = player.deviceCurrentTime;
[player playAtTime: now + shortStartDelay];
[secondPlayer playAtTime: now + shortStartDelay];
// Here, update state and user interface for each player, as appropriate
}
Для приобретения знаний о виртуальной временной шкале устройства аудиовыхода считайте описание для
deviceCurrentTime
свойство.Вызов этого метода неявно вызывает
prepareToPlay
метод, если аудиоплеер уже не подготовлен играть.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Воспроизведение пауз; звук остается готовым возобновить воспроизведение от того, где это кончило.
Объявление
Swift
func pause()
Objective C
- (void)pause
Обсуждение
Вызов
pause
уезжает аудиоплеер подготовил играть; это не выпускает аудио аппаратные средства, полученные по вызовуplay
илиprepareToPlay
.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Воспроизведение остановок и отмены установка необходимы для воспроизведения.
Объявление
Swift
func stop()
Objective C
- (void)stop
Обсуждение
Вызов этого метода или разрешение звука закончить играть, отменяют установку, выполняемую по вызову
play
илиprepareToPlay
методы.stop
метод не сбрасывает значениеcurrentTime
свойство к0
. Другими словами, если Вы вызываетеstop
во время воспроизведения и затем вызываютplay
, воспроизведите резюме в точке, где она кончила.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Подготавливает аудиоплеер к воспроизведению путем предварительно загружения его буферов.
Объявление
Swift
func prepareToPlay() -> Bool
Objective C
- (BOOL)prepareToPlay
Возвращаемое значение
Возвраты
YES
true
на успехе, илиNO
false
при отказе.Обсуждение
Вызов этого метода предварительные нагрузки буферизуют и получают аудио аппаратные средства, необходимые для воспроизведения, минимизирующего задержку между вызовом
play
метод и запуск звукового вывода.Вызов
stop
метод или разрешение звука закончить играть, отменяет эту установку.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Булево значение, указывающее, играет ли аудиоплеер (
YES
true
) или не (NO
false
). (только для чтения)Объявление
Swift
var playing: Bool { get }
Objective C
@property(readonly, getter=isPlaying) BOOL playing
Обсуждение
Узнать, когда воспроизведение остановило реализацию
audioPlayerDidFinishPlaying:successfully:
метод делегата.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Громкость воспроизведения для аудиоплеера, в пределах от
0.0
через1.0
в линейной шкале.Объявление
Swift
var volume: Float
Objective C
@property float volume
Обсуждение
Значение
0.0
указывает тишину; значение1.0
(значение по умолчанию), указывает полный объем для экземпляра аудиоплеера.Используйте это свойство для управления объемом аудиоплеера относительно другого аудиовыхода.
Для обеспечения UI в iOS для корректировки системного объема воспроизведения аудио используйте
MPVolumeView
класс, обеспечивающий управление воспроизведением носителей, которое ожидают пользователи и чье появление можно настроить.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
панорамирование панорамирование
СвойствоПозиция панорамирования аудиоплеера стерео.
Объявление
Swift
var pan: Float
Objective C
@property float pan
Обсуждение
Путем установки этого свойства можно расположить звук в стереополе. Значение
–1.0
полон оставленный,0.0
центр, и1.0
полное право.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Скорость воспроизведения аудиоплеера.
Объявление
Swift
var rate: Float
Objective C
@property float rate
Обсуждение
Значение по умолчанию этого свойства
1.0
обеспечивает нормальную скорость воспроизведения. Доступный диапазон от0.5
поскольку полускорость воспроизводит через2.0
для воспроизведения с удвоенной скоростью.Для установки скорости воспроизведения аудиоплеера необходимо сначала включить корректировку уровня, как описано в
enableRate
описание свойства.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.8 и позже.
-
enableRate enableRate
СвойствоБулево значение, указывающее, включена ли корректировка скорости воспроизведения для аудиоплеера.
Объявление
Swift
var enableRate: Bool
Objective C
@property BOOL enableRate
Обсуждение
Для включения корректируемой скорости воспроизведения для аудиоплеера установите это свойство в
YES
true
после инициализации проигрывателя и перед вызовомprepareToPlay
метод экземпляра для проигрывателя.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.8 и позже.
-
numberOfLoops numberOfLoops
СвойствоЧисло раз звук возвратится к началу, после достижения конца, для повторения воспроизведения.
Обсуждение
Значение
0
, то, которое является значением по умолчанию, означает играть звук один раз. Установите положительное целочисленное значение для указания числа раз для возврата к запуску и игре снова. Например, указывая значение1
результаты в в общей сложности двух играх звука. Установите любое отрицательное целочисленное значение для цикличного выполнения звука неопределенно, пока Вы не вызоветеstop
метод.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Объект делегата для аудиоплеера.
Объявление
Swift
unowned(unsafe) var delegate: AVAudioPlayerDelegate!
Objective C
@property(assign) id< AVAudioPlayerDelegate > delegate
Обсуждение
Объект, который Вы присваиваете, чтобы быть делегатом аудиоплеера, становится целью уведомлений, описанных в Ссылке на протокол AVAudioPlayerDelegate. Эти уведомления позволяют Вам реагировать на ошибки декодирования, прерывания звука (такие как входящий телефонный вызов), и воспроизвести завершение.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Словарь настроек аудиоплеера, содержа информацию о звуке связался с проигрывателем. (только для чтения)
Объявление
Swift
var settings: [NSObject : AnyObject]! { get }
Objective C
@property(readonly) NSDictionary *settings
Обсуждение
Словарь настроек аудиоплеера содержит ключи для следующей информации о связанном звуке проигрывателя:
Расположение канала (
AVChannelLayoutKey
)Скорость передачи кодера (
AVEncoderBitRateKey
)Формат аудиоданных (
AVFormatIDKey
)Количество каналов (
AVNumberOfChannelsKey
)Частота дискретизации (
AVSampleRateKey
)
Ключи настроек описаны в Константах Параметров звука Основы AV.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
numberOfChannels numberOfChannels
СвойствоЧисло звуковых каналов в звуке связалось с аудиоплеером. (только для чтения)
Объявление
Swift
var numberOfChannels: Int { get }
Objective C
@property(readonly) NSUInteger numberOfChannels
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
продолжительность продолжительность
СвойствоВозвращает общую продолжительность, в секундах, звука, связанного с аудиоплеером. (только для чтения)
Объявление
Swift
var duration: NSTimeInterval { get }
Objective C
@property(readonly) NSTimeInterval duration
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
currentTime currentTime
СвойствоТочка воспроизведения, в секундах, во временной шкале звука связалась с аудиоплеером.
Обсуждение
Если звук играет,
currentTime
смещение текущей позиции воспроизведения, измеренной в секундах от запуска звука. Если звук не играет,currentTime
смещение того, где игра запускается по вызовуplay
метод, измеренный в секундах от запуска звука.Путем установки этого свойства можно искать на отдельный момент в звуковом файле или реализовать аудио ускоренную перемотку и перемотать функции.
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
deviceCurrentTime deviceCurrentTime
СвойствоВременная стоимость, в секундах, устройства аудиовыхода. (только для чтения)
Объявление
Swift
var deviceCurrentTime: NSTimeInterval { get }
Objective C
@property(readonly) NSTimeInterval deviceCurrentTime
Обсуждение
В то время как аудиоплеер играет или приостановленный, значение этого свойства увеличивается монотонно.
Если больше чем один аудиоплеер подключен к устройству аудиовыхода, время устройства продолжает постепенно увеличиваться, целый по крайней мере один проигрывателей играет или приостановленный.
Если устройство аудиовыхода не имеет никаких подключенных аудиоплееров, или играющих или приостановленные, время устройства возвращается к 0.
Используйте это свойство для указания «теперь» при вызове
playAtTime:
метод экземпляра. Путем конфигурирования многократных аудиоплееров для игры при указанном смещении отdeviceCurrentTime
, можно выполнить точную синхронизацию — как описано в обсуждении для того метода.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
URL для звука связался с аудиоплеером. (только для чтения)
Обсуждение
Возвраты
nil
если аудиоплеер не был инициализирован с URL.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Объект данных, содержащий звук, связался с аудиоплеером. (только для чтения)
Обсуждение
Возвраты
nil
если аудиоплеер не имеет никаких данных (т.е. если он не был инициализирован сNSData
объект).Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
meteringEnabled meteringEnabled
СвойствоБулево значение, указывающее уровень звука, измеряющий состояние включения - выключения для аудиоплеера.
Объявление
Swift
var meteringEnabled: Bool
Objective C
@property(getter=isMeteringEnabled) BOOL meteringEnabled
Обсуждение
Значение по умолчанию для
meteringEnabled
свойство выключено (булевская переменнаяNO
false
). Перед использованием измерения для аудиоплеера необходимо включить его путем установки этого свойства вYES
true
. Еслиplayer
переменная экземпляра аудиоплеера Вашего класса контроллера, Вы позволяете измерить как показано здесь:[self.player setMeteringEnabled: YES];
Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает среднюю мощность для данного канала, в децибелах, для играемого звука.
Объявление
Swift
func averagePowerForChannel(_
channelNumber
: Int) -> FloatObjective C
- (float)averagePowerForChannel:(NSUInteger)
channelNumber
Параметры
channelNumber
Звуковой канал, значение средней мощности которого Вы хотите получить. Номера канала индексируются нулем. Монофонический сигнал или левый канал сигнала стерео, имеет номер канала
0
.Возвращаемое значение
Представление с плавающей точкой, в децибелах, текущей средней мощности данного звукового канала. Возвращаемое значение
0
дБ указывает полный масштаб или максимальную мощность; возвращаемое значение–160
дБ указывает минимальное питание (т.е. около тишины).Если сигнал, предоставленный для аудиоплеера, превышает масштаб ±full, то возвращаемое значение может превысить
0
(т.е. это может ввести положительный диапазон).Обсуждение
Для получения текущего значения средней мощности необходимо вызвать
updateMeters
метод прежде, чем вызвать этот метод.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Возвращает пиковое питание для данного канала, в децибелах, для играемого звука.
Объявление
Swift
func peakPowerForChannel(_
channelNumber
: Int) -> FloatObjective C
- (float)peakPowerForChannel:(NSUInteger)
channelNumber
Параметры
channelNumber
Звуковой канал, пиковое значение питания которого Вы хотите получить. Номера канала индексируются нулем. Монофонический сигнал или левый канал сигнала стерео, имеет номер канала
0
.Возвращаемое значение
Представление с плавающей точкой, в децибелах, текущего пикового питания данного звукового канала. Возвращаемое значение
0
дБ указывает полный масштаб или максимальную мощность; возвращаемое значение–160
дБ указывает минимальное питание (т.е. около тишины).Если сигнал, предоставленный для аудиоплеера, превышает масштаб ±full, то возвращаемое значение может превысить
0
(т.е. это может ввести положительный диапазон).Обсуждение
Для получения текущего пикового значения питания необходимо вызвать
updateMeters
метод прежде, чем вызвать этот метод.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Обновляет средние и пиковые значения питания для всех каналов аудиоплеера.
Объявление
Swift
func updateMeters()
Objective C
- (void)updateMeters
Обсуждение
Для получения текущих значений мощности звука необходимо вызвать этот метод перед вызовом
averagePowerForChannel:
илиpeakPowerForChannel:
.Оператор импорта
Objective C
@import AVFoundation;
Swift
import AVFoundation
Доступность
Доступный в OS X v10.7 и позже.
См. также