Делегат приложения AudioStreamer

У меня есть две вещи, касающиеся AudioStreamer, и я надеюсь, что получу здесь некоторые подсказки:

1. Я настроил UITabBarController, а в моем Appdelegate есть AudioStreamer-объект. Два вида относятся к appDelegate.streamer. Похоже, что я получаю два сеанса, когда я выпускаю и выделяю его новым. Я получаю два запущенных аудиосеанса.

2. Я использую UITableView для воспроизведения из этого списка. в методе didSelectRowAtIndexPath я инициализирую URL. когда пользователь нажимает быстрым двойным или тройным щелчком. аудиосессия запустится три раза. хотя я использую bool, чтобы предотвратить это. поэтому мое грязное решение - перевести систему в спящий режим на секунду. это некрасиво, потому что экран зависает на секунду.

Спасибо за некоторые подсказки

Саймон


person endo.anaconda    schedule 12.12.2010    source источник


Ответы (2)


С точки зрения ваших проблем, похоже, вы должны реализовать свой AudioSteamer как синглтон, так как это предотвратит создание нескольких экземпляров и предоставит единую точку для управления воспроизведением (т.

Для получения дополнительной информации о том, как создать одноэлементный класс, см. раздел «Создание экземпляра одноэлементного экземпляра» в Руководство по основам работы с какао.

person John Parker    schedule 12.12.2010
comment
Во всех моих подвидах нет стримера как объекта. только в appDelegate есть стример-объект. Так что я думаю, что я использую синглтон. - person endo.anaconda; 12.12.2010
comment
@Simon - Если бы вы использовали синглтон, было бы невозможно иметь два экземпляра и, следовательно, два запущенных аудиосеанса. - person John Parker; 12.12.2010

за 2-ю точку. Это ошибка класса AudioStreamer. Также эта проблема была решена, и код размещен на gitHub, см. ссылку. также, если это не работает, вы можете перейти к методу паузы и добавить больше состояний, как показано ниже.

-(void)pause
{
    if (state==AS_PLAYING || state==AS_BUFFERING || state==AS_WAITING_FOR_DATA)
    {
       //rest code goes same....
    }
    // rest code goes same....
}

это решило мою ту же проблему. Надеюсь, это поможет и вам...

person DShah    schedule 23.09.2011