Как да активирам аудио скрубер в контролния панел на заключен екран на iOS?

Имам следния речник за MPNowPlayingInfoCenter

@{MPMediaItemPropertyAlbumTitle: @"First Title",
                                MPMediaItemPropertyArtwork: [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"Album-Cover.jpg"]],
                                MPMediaItemPropertyPlaybackDuration:[NSNumber numberWithDouble:self.storyAudioPlayer.duration],
                                MPNowPlayingInfoPropertyElapsedPlaybackTime:[NSNumber numberWithDouble:self.storyAudioPlayer.currentTime],
                                MPNowPlayingInfoPropertyPlaybackRate:@1.0
                                }

Всичко останало работи добре, но не мога да търся песни с плъзгача. Както е показано на изображението. Какъв параметър ми липсва?

Екранна снимка на заключен екран


person Ashish Awaghad    schedule 22.09.2013    source източник
comment
Имаше ли трик, който трябваше да направите, за да накарате бутоните да работят в iOS 7? Контролите за двойно докосване на домашен звук работят добре за мен в iOS 6, но бутоните на Центъра за управление не изпращат събития към приложението ми в iOS 7. Има тема във форумите за разработчици, където хората казват, че това изглежда грешка в iOS 7. Благодаря.   -  person Tenfour04    schedule 24.09.2013
comment
Разбрахте ли как да направите това (скрубер)?   -  person SG1    schedule 27.09.2013
comment
@Tenfour04 не.. просто добавям [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; in viewDidAppear изглежда работи за мен   -  person Ashish Awaghad    schedule 28.09.2013
comment
@SG1 не :| Вие търсите същото?   -  person Ashish Awaghad    schedule 28.09.2013
comment
Всъщност открих, че не работи само на моя Verizon iPhone 5. Не работи за приложения на трети страни на този телефон. Работи добре на всичките ми други тестови устройства. Имам чувството, че този скрубер не е активиран за приложения на трети страни, тъй като нищо свързано с него не е добавено към константите за събитията за дистанционно управление.   -  person Tenfour04    schedule 28.09.2013
comment
Имам още един (вероятно тъп!) въпрос: използвам AVAudioPlayer и внедрих дистанционните управления с UIEventTypeRemoteControl. Трябва ли да използвам MPNowPlayingInfoCenter за показване на продължителността и заглавието? Също така, за търсене на време, радвате ли се да използвате тези два бутона << и >>? Накарах ги да работят! :Д   -  person Neeku    schedule 04.12.2013
comment
@AshishAwaghad успя ли да разбереш?   -  person Desmond    schedule 11.01.2014


Отговори (3)


Можете да го направите на iOS 9.1 и по-нова версия с помощта на MPRemoteCommandCenter и changePlaybackPositionCommand.

Вижте моя отговор

person Neiman Aleksei    schedule 16.10.2016

не можеш Можете да подадете доклад за грешка до Apple, така че те да го внедрят някой ден.

РЕДАКТИРАНЕ: Вече е възможно да го направите от iOS 9

person Felix Lapalme    schedule 03.01.2014
comment
не можете, има приложение на трета страна, наречено HABU, което ви позволява да търсите. И аз търся отговор как да го направя. itunes.apple.com/au/app/habu-music/ id540535146?mt=8 - person Desmond; 11.01.2014
comment
@Desmond това приложение използва приложението Музика, за да възпроизвежда своята музика. Това е съвсем различно нещо и музиката трябва вече да е в библиотеката. - person Felix Lapalme; 18.01.2014
comment
Здрасти @lap.flix, прав си, проверих приложението и друго приложение като spotify, те използват различен контролер. - person Desmond; 20.01.2014
comment
@desmond Ако е важно за вас, можете да попълните заявка за функция в инструмента за докладване на грешки на Apple. Колкото повече дубликати получават, толкова по-голям приоритет получавате (това е странна система, но това е как се въртят и това е нещо като логика) - person Felix Lapalme; 20.01.2014

Swift 5

Можете да го направите с MPRemoteCommandCenter.changePlaybackPositionCommand.

Командният обект за промяна на позицията на възпроизвеждане в медиен елемент.

let commandCenter = MPRemoteCommandCenter.shared()
    commandCenter.changePlaybackPositionCommand.isEnabled = true
    commandCenter.changePlaybackPositionCommand.addTarget { event in
        if let event = event as? MPChangePlaybackPositionCommandEvent {
            let time = CMTime(seconds: event.positionTime, preferredTimescale: 1000000)
            self.avplayer.seekTo(time)
        }
        return .success
    }
person goofy    schedule 20.06.2019