Узнайте, воспроизводится ли в данный момент звук
-
23-08-2019 - |
Вопрос
Мне нужно узнать, воспроизводит ли моя программа в данный момент какой-либо звук, и если да, то я хочу остановить предыдущий звук и начать новое воспроизведение.Собственность kaudiosessionproperty_otheraudioisplaying всегда возвращает 0 (вероятно, проверяет, играет ли iPod Music), есть еще одна собственность Kaudioqueeproperty_isrunning, но это всегда возвращает 0, независимо от того, работает ли звук или нет.Подскажите, пожалуйста, как узнать, воспроизводится ли звук в моем приложении или нет.
Спасибо.
Примечание:Класс, из которого я вызываю свой стример, освобождается, когда я возвращаюсь в иерархию представлений.Поэтому у меня нет возможности получить доступ к AudioFileStreamID, чтобы узнать, воспроизводится ли звук.Мне нужно использовать одно из свойств, предоставляемых SDK.
Решение
Нашел обходной путь.Вместо создания объекта стримера в контроллере представления я использую ссылку в appDelegate.Таким образом, у меня всегда будет живая ссылка на класс стримера, к которой я могу получить доступ в любом из контроллеров представления, чтобы узнать, воспроизводится ли в данный момент звук или нет.