Как уменьшить обрезание при воспроизведении аудио с помощью трансляции?

При воспроизведении звука с устройства iOS, подключенного к Apple TV через AirPlay (с помощью iOS9.2), первая секунда воспроизведения звука отключается. Это нежелательное поведение не относится к конкретным приложениям, а относится к системе (например, официальные приложения Apple также имеют эту ошибку).

См. https://forums.developer.apple.com/thread/28086

Есть ли способ, в котором можно воспроизводить полный audio file? Например, добавив blank sounds перед воспроизведением файла? Или изменить способ вызова API? Или я должен ждать официального подтверждения Apple?

Ответ 1

  • Эта проблема не появляется в каких-либо текущих версиях iOS, поэтому мое первое предложение - обновить.
  • Если вы должны использовать iOS 9.2, я бы предложил играть пустой звуковой файл в течение 2 секунд, а затем запустить полный аудиофайл.

Пример кода:

audioPlayer.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

[[NSNotificationCenter defaultCenter] addObserver:self
                                               selector:@selector(playEnded:)
                                                   name:AVPlayerItemDidPlayToEndTimeNotification
                                                 object:[audioPlayer currentItem]];

- (void)playEnded:(NSNotification *)notification
{
    // Start the full audio file here
}