Theos: твик MPAVController не работает

Я много раз пытался сделать настройку, при которой новый UISlider добавляется в вид видеоплеера, который, как я полагаю, MPAVController с методом -(id)videoView. Вот мой код:

#import <MediaPlayer/MPAVController.h>

id contentPlayer;
UISlider *slider;

%hook MPAVController

-(id)videoView{

    contentPlayer = %orig;

    slider = [[UISlider alloc] init];
    [slider setValue:[UIScreen mainScreen].brightness];
    slider.frame = CGRectMake(832.0, 50.0, 190.0, 32.0);
    [contentPlayer addSubview:slider];

    return contentPlayer;
}

%end

Любые идеи, как этот код может быть проблемой? Я почти уверен, что мой Makefile в порядке, как и control. Я довольно новичок в этом, поэтому любая помощь приветствуется.


person Burrito411    schedule 26.07.2014    source источник
comment
В чем именно у вас проблема?   -  person Alex Zielenski    schedule 26.07.2014
comment
@AlexZielenski При воспроизведении видео ничего не происходит.   -  person Burrito411    schedule 26.07.2014


Ответы (1)


Возможно, класс, который вы подключаете, не тот, который используется, или его представления могут быть не видны. Вы можете попробовать зарегистрировать разные классы, которые могут привести вас к правильному классу и методам для перехвата. Существует также инструмент под названием cycript, который может помочь вам искать, тестировать и изменять объекты во время выполнения без необходимости компилировать какие-либо настройки.

Кроме того, глобальные переменные как таковые не нужны (могут быть локальными переменными для метода, который вы подключаете), ползунок не освобождается (если вы не используете ARC), и инициализация может быть выполнена с помощью -initWithFrame:, как и другие инициализации UIKit.

person uroboro    schedule 27.07.2014
comment
Извините, я ОЧЕНЬ новичок в этом, не могли бы вы объяснить, как войти в класс? кстати спасибо за помощь. - person Burrito411; 29.07.2014
comment
Перехватите метод и используйте %log; в этом. Ваш оригинальный хук будет: %hook MPAVController -(id)videoView { %log; return %orig(); } %end - person uroboro; 29.07.2014
comment
Вот что я получил в своем системном журнале: Jul 29 16:32:48 Johns-iPhone Videos[2256]: -[<MPAVController: 0x15f820e0> videoView] Jul 29 16:32:49: --- last message repeated 8 times --- Означает ли это, что это правильный метод или нет? - person Burrito411; 30.07.2014
comment
Это означает, что этот метод вызывается 8 раз подряд. Если это метод, который вы ищете, он не может быть выведен из этих данных. Попробуйте изменить этот объект, чтобы увидеть, влияет ли он на представление, в которое вы пытаетесь добавить ползунок. - person uroboro; 03.08.2014
comment
На самом деле я понял это несколько дней назад. Это был не тот класс, который я искал, я действительно хотел MPVideoPlaybackOverlayView. - person Burrito411; 03.08.2014