Как включить звуковой скруббер в панели управления iOS Lock Screen?

У меня есть следующий словарь для 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] beginReceiveRemoteControlEvents]; 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 для отображения продолжительности и названия? Кроме того, для поиска времени вам удобно использовать эти две кнопки << и >>? У меня они работают! :D   -  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

Свифт 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